[发明专利]一种代码生成方法及装置在审

专利信息
申请号: 202010120004.9 申请日: 2020-02-26
公开(公告)号: CN111338637A 公开(公告)日: 2020-06-26
发明(设计)人: 余文明 申请(专利权)人: 腾讯科技(深圳)有限公司
主分类号: G06F8/41 分类号: G06F8/41
代理公司: 深圳翼盛智成知识产权事务所(普通合伙) 44300 代理人: 汪阮磊
地址: 518057 广东省深圳*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 代码 生成 方法 装置
【说明书】:

本申请实施例公开了一种代码生成方法及装置;本申请实施例可以确定待生成代码的服务接口;使用装饰器解析所述服务接口,得到所述服务接口的第一接口参数;使用编译模块解析所述服务接口,得到所述服务接口的第二接口参数;将所述第一接口参数及所述第二接口参数注入代码生成模板;触发注入参数后的代码生成模板生成所述服务接口对应的调用代码;输出所述服务接口对应的调用代码。该方案可以自动生成用于调用服务接口的代码,提高了服务接口的调用代码生成效率。

技术领域

本申请涉及计算机技术领域,具体涉及一种代码生成方法及装置。

背景技术

在项目开发中由前后端进行分工协作,后端负责实现业务功能的程序开发,并提供所述程序的服务接口及所述服务接口的接口描述文档;前端通过向后端发送服务接口的调用请求来请求业务处理。

在对现有技术的研究和实践过程中,本申请的发明人发现,由于在后端确定了服务接口后,前端仍然需要开发用于调用所述服务接口的代码,使得服务接口的调用代码生成效率低下。

发明内容

本申请实施例提供一种代码生成方法及装置,可以提高服务接口的调用代码生成效率。

本申请实施例提供一种代码生成方法,包括:

确定待生成代码的服务接口;

使用装饰器解析所述服务接口,得到所述服务接口的第一接口参数;

使用编译模块解析所述服务接口,得到所述服务接口的第二接口参数;

将所述第一接口参数及所述第二接口参数注入代码生成模板;

触发注入参数后的代码生成模板生成所述服务接口对应的调用代码;

输出所述服务接口对应的调用代码。

相应的,本申请实施例还提供一种代码生成装置,包括:

确定单元,用于确定待生成代码的服务接口;

第一参数获得单元,用于使用装饰器解析所述服务接口,得到所述服务接口的第一接口参数;

第二参数获得单元,用于使用编译模块解析所述服务接口,得到所述服务接口的第二接口参数;

注入单元,用于将所述第一接口参数及所述第二接口参数注入代码生成模板;

生成单元,用于触发注入参数后的代码生成模板生成所述服务接口对应的调用代码;

输出单元,用于输出所述服务接口对应的调用代码。

在一实施例中,所述第一参数获得单元,包括:

装饰器定义子单元,用于定义具有反射机制的装饰器;

接口装饰子单元,用于利用所述装饰器装饰所述服务接口,得到装饰后服务接口;

反射触发子单元,用于触发所述装饰器的反射机制解析装饰后的服务接口,得到第一接口参数。

在一实施例中,所述接口装饰子单元,用于确定所述装饰器的调用表达式;将所述调用表达式插入至所述服务接口的待装饰位置,得到装饰后的服务接口。

在一实施例中,所述反射触发子单元,用于触发反射机制的定义函数在所述服务接口中定义元数据;触发反射机制的读取函数读取所述元数据的值;利用所述元数据的值解析装饰后的服务接口,得到第一接口参数。

在一实施例中,所述第二参数获得单元,包括:

编译确定子单元,用于确定编译模块;

编译调用子单元,用于调用所述编译模块,对所述服务接口进行编译分析,得到抽象语法树;

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202010120004.9/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top