[发明专利]代码重构方法、装置、设备及介质在审
申请号: | 202010718413.9 | 申请日: | 2020-07-23 |
公开(公告)号: | CN111722873A | 公开(公告)日: | 2020-09-29 |
发明(设计)人: | 黄亚伟 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F8/72 | 分类号: | G06F8/72;G06F8/41 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 张所明 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 方法 装置 设备 介质 | ||
1.一种代码重构方法,其特征在于,所述方法包括:
获取请求记录文件,所述请求记录文件中包含至少一条网络请求;
通过解析所述请求记录文件,筛选出所述请求记录文件中的目标网络请求,所述目标网络请求是通过调用目标API发起的网络请求,所述目标API对应的第一实现代码采用第一代码结构;
从所述目标网络请求中提取所述目标API对应的目标接口信息;
基于所述目标接口信息和第二代码结构生成所述目标API对应的第二实现代码,所述第二代码结构不同于所述第一代码结构。
2.根据权利要求1所述的方法,其特征在于,所述通过解析所述请求记录文件,筛选出所述请求记录文件中的目标网络请求,包括:
根据所述目标API对应的目标网络请求参数,从所述请求记录文件中筛选出第一网络请求,所述目标网络请求参数是调用所述目标API发起的网络请求中包含的参数;
根据目标状态码,从所述第一网络请求中筛选出第二网络请求,所述目标状态码表征网络请求的请求状态为请求成功状态;
根据接口名称对所述第二网络请求进行去重,得到所述目标网络请求。
3.根据权利要求2所述的方法,其特征在于,所述目标网络请求参数包括目标请求方式和目标资源媒体类型;
所述根据所述目标API对应的目标网络请求参数,从所述请求记录文件中筛选出第一网络请求,包括:
将所述请求记录文件中,请求方式为所述目标请求方式,且请求出参数的资源媒体类型为所述目标资源媒体类型的网络请求确定为所述第一网络请求。
4.根据权利要求1至3任一所述的方法,其特征在于,所述基于所述目标接口信息和第二代码结构生成所述目标API对应的第二实现代码,包括:
获取重构代码模板,所述重构代码模板采用所述第二代码结构定义所述目标API;
根据所述目标接口信息和所述重构代码模板,生成所述目标API对应的所述第二实现代码。
5.根据权利要求4所述的方法,其特征在于,所述根据所述目标接口信息和所述重构代码模板,生成所述目标API对应的所述第二实现代码,包括:
将所述重构代码模板输入编译器,得到所述编译器输出的抽象语法树,所述抽象语法树中包含的各个节点用于表示所述重构代码模板对应的语法结构;
根据所述目标抽象语法树中的各个节点,从目标编程库中查找所述语法结构对应的语法实现代码;
根据所述语法实现代码和所述目标接口信息,生成所述目标API对应的所述第二实现代码。
6.根据权利要求5所述的方法,其特征在于,所述重构代码模板包括接口入参定义模板、接口出参定义模板和接口请求函数定义模板;
所述将所述重构代码模板输入编译器,得到所述编译器输出的抽象语法树,包括:
将所述接口入参定义模板输入所述编译器,得到所述编译器输出的第一抽象语法树;
将所述接口出参定义模板输入所述编译器,得到所述编译器输出的第二抽象语法树;
将所述接口请求函数定义模板输入所述编译器,得到所述编译器输出的第三抽象语法树。
7.根据权利要求6所述的方法,其特征在于,所述根据所述语法实现代码和所述目标接口信息,生成所述目标API对应的所述第二实现代码,包括:
根据所述接口入参定义模板对应的第一语法实现代码,以及所述目标接口信息中的接口入参信息,生成所述目标API对应的接口入参定义代码;
根据所述接口出参定义模板对应的第二语法实现代码,以及所述目标接口信息中的接口出参信息,生成所述目标API对应的接口出参定义代码;
根据所述接口请求函数定义模板对应的第三语法实现代码,以及所述接口入参信息和所述接口出参信息,生成所述目标API对应的接口请求代码;
将所述接口入参定义代码、所述接口出参定义代码和所述接口请求代码确定为所述第二实现代码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010718413.9/1.html,转载请声明来源钻瓜专利网。