CN117369784B - 一种服务接口的处理系统及方法 - Google Patents
一种服务接口的处理系统及方法 Download PDFInfo
- Publication number
- CN117369784B CN117369784B CN202311665193.8A CN202311665193A CN117369784B CN 117369784 B CN117369784 B CN 117369784B CN 202311665193 A CN202311665193 A CN 202311665193A CN 117369784 B CN117369784 B CN 117369784B
- Authority
- CN
- China
- Prior art keywords
- code
- interface
- service interface
- parameter
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims abstract description 85
- 238000000034 method Methods 0.000 title claims abstract description 84
- 238000012360 testing method Methods 0.000 claims description 122
- 230000004044 response Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 16
- 238000012216 screening Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 15
- 238000011161 development Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 230000006872 improvement Effects 0.000 description 8
- 238000003672 processing method Methods 0.000 description 7
- 230000002452 interceptive effect Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 239000000344 soap Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本说明书公开了一种服务接口的处理系统及方法,客户端将待编排服务接口的第一接口信息和目标服务接口的第二接口信息发送给服务端,服务端基于第二接口信息生成模板代码,并基于第一接口信息和模板代码生成第一目标代码,并返回,客户端基于第一目标代码确定处理逻辑代码,进而确定第二目标代码,在第二目标代码调试完成后,由服务端基于第二目标代码生成目标服务接口,并在客户端发送调用请求时,调用目标服务接口以执行业务。可见,上述方案通过高低代码结合的方式进行服务接口的编排,利用了高代码编程的灵活性高扩展性,以及低代码的结构化和便捷实现服务接口的引入,以此生成调用过程的高代码,提高了服务接口编排和生成的效率。
Description
技术领域
本说明书涉及计算机技术领域,尤其涉及一种服务接口的处理系统及方法。
背景技术
随着数字化和智能化技术的发展和应用,越来越多的业务都成为了线上的服务,同时也有带来了海量的服务接口需要被管理,如何更好更快的开发和管理这些接口,在生产中就显得非常重要。
现有的服务接口开发和管理方式一般是由技术人员建立后端应用,在应用中使用代码开发接口,通过维护接口文档的方式来管理接口。
但是,上述开发方式只能应对简单的接口开发需求,并且流程繁杂,接口管理不便,无法快速响应服务接口的生成和执行,降低了服务接口管理和使用的效率。
发明内容
本说明书提供一种服务接口的处理系统及方法,以部分的解决现有技术存在的上述问题。
本说明书采用下述技术方案:
本说明书提供了一种服务接口的处理系统,所述系统包括:客户端和服务端;
本说明书提供了一种服务接口的处理方法,所述方法应用于客户端,所述方法包括:
响应于用户输入的待编排服务接口的第一接口信息,并将所述第一接口信息发送给服务端;
响应于所述用户输入的目标服务接口的第二接口信息,并将所述第二接口信息发送给所述服务端,以使所述服务端根据所述第二接口信息生成模板代码,并根据所述第一接口信息和所述模板代码,生成并返回调用所述待编排服务接口的第一目标代码;其中,所述模板代码至少包括用于调用所述第二接口信息的代码;
接收所述服务端发送的第一目标代码,并响应于所述用户输入的指定操作,根据所述指定操作和所述第一目标代码,确定针对所述待编排服务接口的处理逻辑代码;
根据所述第一目标代码和所述处理逻辑代码,确定用于生成所述目标服务接口的第二目标代码;
调试所述第二目标代码,并在调试完成后,向所述服务端发送接口发布请求,以便所述服务端响应所述接口发布请求,生成所述目标服务接口;
响应于所述用户输入的调用操作,确定用于调用所述目标服务接口的调用参数,根据所述调用参数生成调用请求,并将所述调用请求发送给所述服务端,以使所述服务端响应于所述调用请求,根据所述调用参数调用所述目标服务接口,以通过所述目标服务接口执行业务。
可选地,所述服务端,还用于根据所述目标服务接口的调用参数,查找所述服务端的本地缓存中是否存在所述目标服务接口对应的类实例,若不存在,根据所述目标服务接口的标识,查找所述第二目标代码,编译查找到的所述第二目标代码,初始化所述目标服务接口的类实例,并将所述目标服务接口对应的类实例存储在所述服务端的本地缓存中;调用所述目标服务接口的类实例,以通过所述目标服务接口执行业务。
可选地,所述服务端,具体用于获取预先定义的初始模板代码,所述初始模板代码中包含与第二接口信息相对应的查询参数对应的对象、路径参数对应的对象和请求体参数对应的对象;根据所述第二接口信息中入参对应的入参格式,生成参数获取代码,并通过所述参数获取代码,从所述查询参数对应的对象中获取指定的查询参数、从所述路径参数对应的对象中获取指定的路径参数,以及从所述请求体参数对应的对象中获取指定的请求体参数;根据第二接口信息中入参对应的字段名、所述指定的查询参数、所述指定的路径参数以及所述指定的请求体参数,生成查询入参字段、路径入参字段以及请求体入参字段;将所述查询入参字段、所述路径入参字段以及所述请求体入参字段插入所述初始模板代码,得到模板代码。
可选地,所述服务端,还用于将所述模板代码发送给所述客户端;接收所述客户端发送的候选服务接口的标识,根据所述候选服务接口的标识,查询所述候选服务接口的接口信息,并根据所述候选服务接口的接口信息和所述模板代码,生成调用所述候选服务接口的第一目标代码;
所述客户端,还用于响应于所述服务端发送的模板代码,展示编码界面,所述编码界面中展示接口列表;响应于所述用户输入的选择操作,从所述接口列表包含所述待编排服务接口的标识中,选择至少一个候选服务接口的标识;将所述候选服务接口的标识发送给所述服务端。
可选地,所述客户端,具体用于展示调试界面,响应于所述用户通过所述调试界面输入的测试操作,将所述第二目标代码发送给所述服务端;接收所述服务端发送的当前测试对应的通用唯一识别码;根据所述当前测试对应的通用唯一识别码生成日志获取请求,并将所述日志获取请求发送给所述服务端;接收所述服务端发送的测试日志,根据所述测试日志对所述第二目标代码进行调试,直至调试完成;
所述服务端,还用于接收并编译所述第二目标代码,初始化所述目标服务接口的类实例,调用所述目标服务接口的类实例,以通过所述目标服务接口执行业务,得到测试结果以及测试日志,所述测试日志中至少包括当前测试对应的通用唯一识别码;将所述当前测试对应的通用唯一识别码返回给所述客户端;接收所述客户端发送的日志获取请求,根据所述日志获取请求中携带的通用唯一识别码,查找测试日志,并将查找到的测试日志发送给所述客户端。
可选地,所述服务端,还用于确定所述服务端的本地缓存中存储的各服务接口对应的类实例的数量,并确定所述各服务接口对应的类实例的数量是否超过预设数量阈值,若是,获取所述各服务接口对应的类实例分别对应的调用记录,所述调用记录包含所述服务接口对应的类实例的调用时刻和调用次数;根据所述调用记录中所述各服务接口对应的类实例分别对应的调用时刻和调用次数,从所述各服务接口中筛选出至少一个待删除接口,并从所述服务端的本地缓存中将所述待删除接口对应的类实例进行删除。
本说明书提供了一种服务接口的处理方法,所述方法应用于服务端,所述方法包括:
接收所述客户端发送的所述待编排服务接口的第一接口信息;
接收所述客户端发送的所述目标服务接口的第二接口信息,并根据所述第二接口信息生成模板代码,所述模板代码至少包括用于调用所述第二接口信息的代码;
根据所述第一接口信息和所述模板代码,生成调用所述待编排服务接口的第一目标代码;
将所述第一目标代码返回给所述客户端,以便所述客户端响应于所述用户输入的指定操作,根据所述指定操作和所述第一目标代码,确定针对所述待编排服务接口的处理逻辑代码,并根据所述第一目标代码和所述处理逻辑代码,确定用于生成所述目标服务接口的第二目标代码,调试所述第二目标代码,并在调试完成后,向所述服务端发送接口发布请求;
响应于所述客户端发送的接口发布请求,根据所述接口发布请求中携带的第二目标代码,生成所述目标服务接口;
响应于所述客户端发送的调用请求,从所述服务接口调用请求中解析得到所述目标服务接口的调用参数;其中,所述调用请求是由所述客户端响应所述用户输入的调用操作,确定用于调用所述目标服务接口的调用参数,根据所述调用参数生成并发送的;
根据所述目标服务接口的调用参数,调用所述目标服务接口,以通过所述目标服务接口执行业务。
可选地,所述方法还包括:
接收所述服务端发送的模板代码,展示编码界面,所述编码界面中展示接口列表;
响应于用户输入的选择操作,从所述接口列表包含所述待编排服务接口的标识中,选择至少一个候选服务接口的标识;
将所述候选服务接口的标识发送给所述服务端,以使所述服务端根据所述候选服务接口的标识,查询所述候选服务接口的接口信息,并根据所述候选服务接口的接口信息和所述模板代码,生成调用所述候选服务接口的第一目标代码。
可选地,所述调试所述第二目标代码,具体包括:
展示调试界面;
响应于所述用户通过所述调试界面输入的测试操作,将所述第二目标代码发送给所述服务端,以便所述服务端接收并编译所述第二目标代码,初始化所述目标服务接口的类实例,调用所述目标服务接口的类实例,以通过所述目标服务接口执行业务,得到测试结果以及测试日志,所述测试日志中至少包括当前测试对应的通用唯一识别码;
接收所述服务端发送的当前测试对应的通用唯一识别码;
根据所述当前测试对应的通用唯一识别码生成日志获取请求,并将所述日志获取请求发送给所述服务端,以使所述服务端根据所述日志获取请求中携带的通用唯一识别码,查找测试日志,并将查找到的测试日志发送给所述客户端;
接收所述服务端发送的测试日志,根据所述测试日志对所述第二目标代码进行调试,直至调试完成。
本说明书提供了一种服务接口的处理方法,所述方法应用于服务端,所述方法包括:
接收客户端发送的待编排服务接口的第一接口信息;
接收所述客户端发送的目标服务接口的第二接口信息,并根据所述第二接口信息生成模板代码,所述模板代码至少包括用于调用所述第二接口信息的代码;
根据所述第一接口信息和所述模板代码,生成调用所述待编排服务接口的第一目标代码;
将所述第一目标代码返回给所述客户端,以便所述客户端响应于用户输入的指定操作,根据所述指定操作和所述第一目标代码,确定针对所述待编排服务接口的处理逻辑代码,并根据所述第一目标代码和所述处理逻辑代码,确定用于生成所述目标服务接口的第二目标代码,调试所述第二目标代码,并在调试完成后,向所述服务端发送接口发布请求;
响应于所述客户端发送的接口发布请求,根据所述接口发布请求中携带的第二目标代码,生成所述目标服务接口;
响应于所述客户端发送的调用请求,从所述服务接口调用请求中解析得到所述目标服务接口的调用参数;其中,所述调用请求是由所述客户端响应所述用户输入的调用操作,确定用于调用所述目标服务接口的调用参数,根据所述调用参数生成并发送的;
根据所述目标服务接口的调用参数,调用所述目标服务接口,以通过所述目标服务接口执行业务。
可选地,所述根据所述目标服务接口的调用参数,调用所述目标服务接口之前,所述方法还包括:
根据所述目标服务接口的调用参数,查找所述服务端的本地缓存中是否存在所述目标服务接口对应的类实例;
若不存在,根据所述目标服务接口的标识,查找所述第二目标代码,编译查找到的所述第二目标代码,初始化所述目标服务接口的类实例,并将所述目标服务接口对应的类实例存储在所述服务端的本地缓存;
根据所述目标服务接口的调用参数,调用所述目标服务接口,以通过所述目标服务接口执行业务,具体包括:
调用所述目标服务接口的类实例,以通过所述目标服务接口执行业务。
可选地,所述根据所述第二接口信息生成模板代码,具体包括:
获取预先定义的初始模板代码,所述初始模板代码中包含与第二接口信息相对应的查询参数对应的对象、路径参数对应的对象和请求体参数对应的对象;
根据所述第二接口信息中入参对应的入参格式,生成参数获取代码;
通过所述参数获取代码,从所述查询参数对应的对象中获取指定的查询参数、从所述路径参数对应的对象中获取指定的路径参数,以及从所述请求体参数对应的对象中获取指定的请求体参数;
根据第二接口信息中入参对应的字段名、所述指定的查询参数、所述指定的路径参数以及所述指定的请求体参数,生成查询入参字段、路径入参字段以及请求体入参字段;
将所述查询入参字段、所述路径入参字段以及所述请求体入参字段插入所述初始模板代码,得到模板代码。
可选地,所述方法还包括:
将所述模板代码发送给所述客户端,以使所述客户端响应于所述服务端发送的模板代码,展示包含接口列表的编码界面,并响应于所述用户输入的选择操作,从所述接口列表包含的所述待编排服务接口的标识中,选择至少一个候选服务接口的标识,并返回所述候选服务接口的标识;
接收所述客户端发送的候选服务接口的标识,根据所述候选服务接口的标识,查询所述候选服务接口的接口信息;
根据所述候选服务接口的接口信息和所述模板代码,生成调用所述候选服务接口的第一目标代码。
可选地,所述响应于所述客户端发送的接口发布请求,根据所述接口发布请求中携带的第二目标代码,生成所述目标服务接口之前,所述方法还包括:
接收有所述客户端发送的第二目标代码;
编译所述第二目标代码,初始化所述目标服务接口的类实例;
调用所述目标服务接口的类实例,以通过所述目标服务接口执行业务,得到测试结果以及测试日志,所述测试日志中至少包括当前测试对应的通用唯一识别码;
将所述当前测试对应的通用唯一识别码返回给所述客户端,以使所述客户端根据所述当前测试对应的通用唯一识别码生成并返回日志获取请求;
接收所述客户端发送的日志获取请求,根据所述日志获取请求中携带的通用唯一识别码,查找测试日志,并将查找到的测试日志发送给所述客户端,以便所述客户端根据所述测试日志对所述第二目标代码进行调试,直至调试完成。
可选地,所述根据所述目标服务接口的调用参数,调用所述目标服务接口之前,所述方法还包括:
确定所述服务端的本地缓存中存储的各服务接口对应的类实例的数量;
确定所述各服务接口对应的类实例的数量是否超过预设数量阈值;
若是,获取所述各服务接口对应的类实例分别对应的调用记录,所述调用记录包含所述服务接口对应的类实例的调用时刻和调用次数;根据所述调用记录中所述各服务接口对应的类实例分别对应的调用时刻和调用次数,从所述各服务接口中筛选出至少一个待删除接口,并从所述服务端的本地缓存中将所述待删除接口对应的类实例进行删除。
本说明书提供了一种服务接口的处理装置,所述方法应用于客户端,所述装置包括:
第一接口信息获取模块,用于响应于用户输入的待编排服务接口的第一接口信息,并将所述第一接口信息发送给服务端;
第二接口信息获取模块,用于响应于所述用户输入的目标服务接口的第二接口信息,并将所述第二接口信息发送给所述服务端,以使所述服务端根据所述第二接口信息生成模板代码,并根据所述第一接口信息和所述模板代码,生成并返回调用所述待编排服务接口的第一目标代码;其中,所述模板代码至少包括用于调用所述第二接口信息的代码;
处理逻辑代码确定模块,用于接收所述服务端发送的第一目标代码,并响应于所述用户输入的指定操作,根据所述指定操作和所述第一目标代码,确定针对所述待编排服务接口的处理逻辑代码;
第二目标代码确定模块,用于根据所述第一目标代码和所述处理逻辑代码,确定用于生成所述目标服务接口的第二目标代码;
调试模块,用于调试所述第二目标代码,并在调试完成后,向所述服务端发送接口发布请求,以便所述服务端响应所述接口发布请求,生成所述目标服务接口;
调用请求发送模块,用于响应于所述用户输入的调用操作,确定用于调用所述目标服务接口的调用参数,根据所述调用参数生成调用请求,并将所述调用请求发送给所述服务端,以使所述服务端响应于所述调用请求,根据所述调用参数调用所述目标服务接口,以通过所述目标服务接口执行业务。
本说明书提供了一种服务接口的处理装置,所述方法应用于服务端,所述装置包括:
第一接口信息接收模块,用于接收所述客户端发送的所述待编排服务接口的第一接口信息;
模板代码生成模块,用于接收所述客户端发送的所述目标服务接口的第二接口信息,并根据所述第二接口信息生成模板代码,所述模板代码至少包括用于调用所述第二接口信息的代码;
第一目标代码生成模块,用于根据所述第一接口信息和所述模板代码,生成调用所述待编排服务接口的第一目标代码;
第一目标代码发送模块,用于将所述第一目标代码返回给所述客户端,以便所述客户端响应于所述用户输入的指定操作,根据所述指定操作和所述第一目标代码,确定针对所述待编排服务接口的处理逻辑代码,并根据所述第一目标代码和所述处理逻辑代码,确定用于生成所述目标服务接口的第二目标代码,调试所述第二目标代码,并在调试完成后,向所述服务端发送接口发布请求;
目标服务接口生成模块,用于响应于所述客户端发送的接口发布请求,根据所述接口发布请求中携带的第二目标代码,生成所述目标服务接口;
调用参数确定模块,用于响应于所述客户端发送的调用请求,从所述服务接口调用请求中解析得到所述目标服务接口的调用参数;其中,所述调用请求是由所述客户端响应所述用户输入的调用操作,确定用于调用所述目标服务接口的调用参数,根据所述调用参数生成并发送的;
目标服务接口调用模块,用于根据所述目标服务接口的调用参数,调用所述目标服务接口,以通过所述目标服务接口执行业务。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述服务接口的处理方法。
本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述服务接口的处理方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
本说明书提供的服务接口的处理系统中,客户端将待编排服务接口的第一接口信息和目标服务接口的第二接口信息发送给服务端,服务端基于第二接口信息生成模板代码,并基于第一接口信息和模板代码生成第一目标代码,并返回,客户端基于第一目标代码和用户输入的指定操作,确定处理逻辑代码,基于处理逻辑代码和第一目标代码确定第二目标代码,在第二目标代码调试完成后,由服务端基于第二目标代码生成目标服务接口,并在客户端发送调用请求时,调用目标服务接口以执行业务。可见,上述方案通过高低代码结合的方式进行服务接口的编排,利用了高代码编程的灵活性高扩展性,以及低代码的结构化和便捷实现服务接口的引入,以此生成调用过程的高代码,提高了服务接口编排和生成的效率。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书中一种服务端口的处理方法的交互流程示意图;
图2为本说明书中一种服务端口的处理方法的流程示意图;
图3为本说明书中一种服务端口的处理方法的交互流程示意图;
图4为本说明书中一种服务端口的处理方法的交互流程示意图;
图5为本说明书中一种服务端口的处理方法的流程示意图;
图6为本说明书提供的一种服务端口的处理装置的示意图;
图7为本说明书提供的一种服务端口的处理装置的示意图;
图8为本说明书提供的对应于图1的电子设备示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
另外,需要说明的是,本说明书中所有获取信号、信息或数据的动作都是在遵照所在地相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。
需要说明的是,在不冲突的情况下,下述的实施例及实施方式中的特征可以相互组合。
随着数字化和智能化技术的发展和应用,越来越多的业务都成为了线上的服务,同时也有带来了海量的服务接口需要被管理,如何更好更快的开发和管理这些接口,在生产中就显得非常重要。现有的服务接口开发和管理方式一般是由技术人员建立后端应用,在应用中使用代码开发接口,通过维护接口文档的方式来管理接口。但是这种开发方式对应一些简单频繁的接口开发需求,流程繁杂,且接口管理不便,无法快速响应。
基于此,本说明书提供一种服务接口的处理系统,该系统中包括客户端和服务端,其中,客户端可以是如手机、平板电脑等可移动的电子设备,当然也可以是固定的电子设备,服务端一般指服务器。客户端和服务端可通过无线通信或有线通信实现信息的传递。本说明书一个或多个实施例中,所涉及的用户,实际上是存在服务接口处理需求的业务人员,用户可以通过客户端输入接口信息以及不同类型的操作,本说明书对用户通过客户端输入信息和操作的输入方式不做限定。
基于上述服务接口的处理系统,本说明书提供一种服务接口处理方法,由上述服务接口处理系统包含的客户端和服务端执行,以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书提供的一种服务接口处理方法的交互流程示意图,交互的两方是服务接口处理系统包含的客户端和服务端。
S100:客户端响应于用户输入的待编排服务接口的第一接口信息,将所述第一接口信息发送给所述服务端。
在本说明书中,通过在已生成的服务接口的基础上进行编排,生成新的服务接口的方式。可知,此步骤所涉及的待编排服务接口实际上是已经生成并投入使用的服务接口,但这些待编排服务接口的接口信息零散的存储在不同的客户端或服务端处,或者由用户掌握,不利于用户统一管理以及在已生成的服务接口的基础上进行编排。因此,在本说明书实施例中,用户可通过客户端输入待编排服务接口的第一接口信息,客户端可将该第一接口信息发送给服务端,由服务端基于数据库统一管理。
服务接口是指不同应用程序或系统之间进行通信和数据交换的一种方式。在软件开发中,服务接口通常是通过定义一组规范化的协议来实现的,这些协议可以确保不同系统之间的数据传输和交互是可靠和有效的。服务接口可以分为多种类型,包括:Web服务接口(基于Web技术的服务接口,如SOAP、REST等)、数据库接口(用于访问和操作数据库的服务接口,如ODBC、JDBC等)、应用程序接口(用于访问和操作应用程序的服务接口,如WindowsAPI、Java API等)、操作系统接口(用于访问和控制操作系统的服务接口,如Win32 API、POSIX API等)。
第一接口信息包括接口路径、接口入参、出参、服务接口的标识、接口方法/操作、接口协议、接口版本、访问权限等信息。第一接口信息可以是结构化数据的形式,便于存储和管理。如果用户输入的第一接口信息不是结构化数据的形式,可以在客户端或服务端处通过相对应该能的信息提取方案将非结构化数据形式的第一接口信息转换成结构化数据形式的第一接口信息。
另外,用户可以通过客户端一次性输入一个或多个待编排服务接口的第一接口信息,本说明书对待编排服务接口的数量不做限定。
S102:服务端接收所述客户端发送的所述待编排服务接口的第一接口信息。
如前所示,服务端在接收到客户端发送的待编排服务接口的第一接口信息后,可以将第一接口信息并通过统一的数据格式(如JSON格式)将待编排服务接口的第一接口信息结构化上传并转存到数据库中,通过将已有的服务接口进行结构化管理,方便服务调用和多接口编排引入。
S104:客户端响应于所述用户输入的目标服务接口的第二接口信息,并将所述第二接口信息发送给所述服务端。
此步骤中,目标服务接口指的是待生成的服务接口,生成该目标服务接口需要调用和编排一个或多个已生成的待编排服务接口。用户可根据编排任务,通过客户端输入目标服务接口的第二接口信息,第二接口信息也包括接口路径、接口入参、出参、服务接口的标识、接口方法/操作、接口协议、接口版本、访问权限等信息。编排任务指的是为了生成目标服务接口,需要编排已生成的待编排服务接口的任务。
但是第一接口信息和第二接口信息分属于不同的服务接口,因此,第一接口信息的具体内容和数值与第二接口信息的具体内容和数值可以存在不同,当然也可以有部分不同。
S106:服务端接收所述客户端发送的所述目标服务接口的第二接口信息,并根据所述第二接口信息生成模板代码,所述模板代码至少包括用于调用所述第二接口信息的代码。
服务端根据第二接口信息自动生成一段模板代码,该模板代码中根据目标服务接口的入参、出参等参数命名和描述名称,分别生成获取代码入参、出参的代码以及其注释,以方便用户理解。
S108:根据所述第一接口信息和所述模板代码,生成调用所述待编排服务接口的第一目标代码。
之后,再基于已生成的待编排服务接口的第一接口信息中待编排服务接口的入参出参信息、接口路径和调用方法等信息,自动生成调用该待编排服务接口方法的代码,代码中包含第一接口信息中各个参数的注释,待传入的信息以空格代替,将这段插入中已生成的模板代码的指定位置,得到一段调用所述待编排服务接口的第一目标代码。
其中,上述待传入的信息指的是第一目标代码中还存在需要填写未知参数的位置,这些位置在第一目标代码中用空格替代,在服务端将第一目标代码返回给客户端后,用户可以基于客户端渲染的代码编辑器中显示的第一目标代码,填入这些暂用空格代替的位置参数。当然,实际应用中,如果第一目标代码中不存在空格,说明无需用户填入任何参数。
S110:服务端将所述第一目标代码返回给所述客户端。
S112:客户端接收所述服务端发送的第一目标代码,并响应于所述用户输入的指定操作,根据所述指定操作和所述第一目标代码,确定针对所述待编排服务接口的处理逻辑代码。
在此步骤中,客户端可以将服务端发送的第一目标代码进行显示,用户可基于客户端显示的第一目标代码,编写与待编排服务接口(编排任务)相关的处理逻辑代码,以便完善第一目标代码,从而更好的执行编排任务,得到能够正常运行的目标服务接口。其中,指定操作指的是用户基于第一目标代码编写处理逻辑代码的操作。可选地,采用代码补全模型,将第一目标代码和提示文本输入代码补全模型,得到代码补全模型输出的处理逻辑代码。其中,提示文本用于提示代码补全模型基于第一目标代码对编排任务的代码进行处理逻辑的补全。
S114:根据所述第一目标代码和所述处理逻辑代码,确定用于生成所述目标服务接口的第二目标代码。
将第一目标代码和处理逻辑代码进行拼接,得到第二目标代码,第二目标代码用于生成目标服务接口,生成目标服务接口时需要调用待编排服务接口。一般而言,运行第二目标代码即可生成通过调用待编排服务接口,并结合第二接口信息,生成目标服务接口。
S116:调试所述第二目标代码,并在调试完成后,向所述服务端发送接口发布请求。
在第二目标代码运行之前,还需要对第二目标代码进行调试,以免运行第二目标代码时出现错误。针对第二目标代码的调试方法可以是基于代码测试的日志的调试方法、打印调试、断点调试、代码审查、基于调试工具的调试方法等,本说明书对此不做限定。
之后,在第二目标代码调试完成后,可通过服务端发布目标服务接口,以生成可以正常应用的目标服务接口。在此步骤中,基于第二目标代码生成接口发布请求,并将接口发布请求发送给服务端。
S118:服务端响应于所述客户端发送的接口发布请求,根据所述接口发布请求中携带的第二目标代码,生成所述目标服务接口。
服务端在接收到接口发布请求后,可从接口发布请求中解析得到第二目标代码,服务端可将第二目标代码持久化到数据库中,以免第二目标代码存储在服务端内存时,因进进程退出而丢失。
进一步的,服务端可运行第二目标代码,通过调用待编排服务接口,生成目标服务接口。
生成目标服务接口时,会初始化目标服务接口对应的类实例,存储在服务端的缓存中,在后续步骤中,如果需要调用该目标服务接口,则查找待该目标服务接口对应的类实例,执行该类实例的接口方法,即可基于该目标服务接口执行相应的业务,得到执行结果。
S120:客户端响应于所述用户输入的调用操作,确定用于调用所述目标服务接口的调用参数,根据所述调用参数生成调用请求。
服务端可以在生成目标服务接口后,给客户端返回发布成功消息,客户端响应于该发布成功消息即可将目标服务接口的标识添加到接口列表中,客户端可显示该接口列表,接口列表中包括已生成(已发布)的服务接口的标识以及接口信息,其中就包括S108在服务端生成的目标服务接口的标识以及第二接口信息。用户可基于目标服务接口的标识和第二接口信息,通过客户端输入调用操作。客户端响应调用操作,可从目标服务接口的第二接口信息确定调用参数,调用参数至少包括接口标识和接口版本。之后基于调用参数生成接口路径,该接口路径实际上调用目标服务接口的路径,接口路径上的参数即为调用参数,以便服务端基于接口路径查找目标服务接口。
S122:客户端将所述调用请求发送给所述服务端。
S124:服务端响应于所述客户端发送的调用请求,从所述服务接口调用请求中解析得到所述目标服务接口的调用参数,根据所述目标服务接口的调用参数,调用所述目标服务接口,以通过所述目标服务接口执行业务。
服务端接收到的调用请求中包含有接口路径,通过对接口路径进行解析,可以得到目标服务接口的调用参数,调用参数至少包括接口标识和接口版本。例如,接口路径的形式可如path/{code}/{version},通过解析该path,可以获得接口标识code和接口版本version。
基于接口标识和接口版本,服务端可从数据库的接口实体记录中查询,目标服务接口是否启用了数据缓存。如果开启了数据缓存,先构建生成缓存key值,即MD5Code+接口入参的JSON字符串,在Redis数据缓存中查询,如果命中缓存,则直接返回结果,否则向本地编排接口实例缓存查询以该MD5Code为key的实例,如果查询到缓存,则执行该实例的执行接口方法,返回执行结果。否则,服务器端从接收实体记录中取出目标服务接口的源代码,即第二目标代码,对第二目标代码进行动态编译,并进行动态加载,加载完获取到编译脚本的类字节码,对其初始化一个类实例,初始化时会给执行类注入一些工具类(如logger日志类,redis控制类等)方便使用者编程时使用,并将该实例以MD5Code为key,存储到缓存中,然后执行该实例的执行接口方法,返回执行结果。
本说明提供的服务接口的处理系统及方法中,客户端将待编排服务接口的第一接口信息和目标服务接口的第二接口信息发送给服务端,服务端基于第二接口信息生成模板代码,并基于第一接口信息和模板代码生成第一目标代码,并返回,客户端基于第一目标代码和用户输入的指定操作,确定处理逻辑代码,基于处理逻辑代码和第一目标代码确定第二目标代码,在第二目标代码调试完成后,由服务端基于第二目标代码生成目标服务接口,并在客户端发送调用请求时,调用目标服务接口以执行业务。
可见,上述方案通过高低代码结合的方式进行服务接口的编排,利用了高代码编程的灵活性高扩展性,以及低代码的结构化和便捷实现服务接口的引入,以此生成调用过程的高代码,提高了服务接口编排和生成的效率。
在本说明书一个可选的实施例中,在上述步骤S124中,服务端在接收到客户端发送的调用请求后,可从调用请求中提取接口路径,进而从接口路径中解析得到调用参数,该调用参数至少包括接口标识和接口版本。基于调用参数调用目标服务接口的方案可如下所示,如图2所示:
S200:根据所述目标服务接口的调用参数,查找所述服务端的本地缓存中是否存在所述目标服务接口对应的类实例。若是,执行步骤S202,否则执行步骤S204。
具体的,对于在服务端上运行的服务接口,服务端的本地缓存中可存储有与服务接口相对应的类实例。如果在服务端的本地缓存中可以查找到类实例,则说明所查找的服务接口是可以直接调用的。如果在服务端的本地缓存中没有查找到类实例,则说明所查找的服务接口上位生成,需要基于服务接口对应的源代码首先生成服务接口后,才可以调用该服务接口执行业务。
S202:调用所述目标服务接口的类实例,以通过所述目标服务接口执行业务。
S204:根据所述目标服务接口的标识,查找所述第二目标代码,并编译查找到的所述第二目标代码,初始化所述目标服务接口的类实例,并将所述目标服务接口对应的类实例存储在所述服务端的本地缓存中。返回执行步骤S202。
一般而言,目标服务接口对应的源代码指的就是前述有客户端发送给服务端的第二目标代码,服务端可以将第二目标代码存储在本地,也可以上传并持久化到数据库。并且,为了指示第二目标代码与目标服务接口相对应,可将第二目标代码与目标服务接口的标识进行绑定,由此,可基于目标服务接口的标识查找到目标服务接口对应的第二目标代码。之后,运行第二目标代码,初始化目标服务接口的类实例,并存储在服务端的本地缓存中。从而,基于对目标服务接口的类实例的调用,可以调用目标服务接口执行业务。
在本说明书一个可选的实施例中,上述步骤S106中生成模板代码,通过下述方案实现:
第一步:获取预先定义的初始模板代码,所述初始模板代码中包含与第二接口信息相对应的查询参数对应的对象、路径参数对应的对象和请求体参数对应的对象。
具体的,预先定义初始模板代码(java执行代码的接口模板),接口实际执行方法的入参可以为和第二接口信息的入参相对应的查询参数对象(query map),路径参数对应的对象(param map)和请求体参数(body)对应的对象,本说明书对前述查询参数对应的对象、路径参数对应的对象和请求体参数对应的对象中,对象的类型不过限定,可以是map队形,也可以是JSON Object等。基于此步骤中,可提高各种入参的传入的自由度兼容。
第二步:根据所述第二接口信息中入参对应的入参格式,生成参数获取代码,并通过所述参数获取代码,从所述查询参数对应的对象中获取指定的查询参数、从所述路径参数对应的对象中获取指定的路径参数,以及从所述请求体参数对应的对象中获取指定的请求体参数。
具体的,根据目标服务接口的入参格式,自动生成参数获取代码,通过该参数获取代码从query map、 param map 和 body 中取出相应的指定参数,也即,从所述查询参数对应的对象中获取指定的查询参数、从所述路径参数对应的对象中获取指定的路径参数,以及从所述请求体参数对应的对象中获取指定的请求体参数。
第三步:根据第二接口信息中入参对应的字段名、所述指定的查询参数、所述指定的路径参数以及所述指定的请求体参数,生成查询入参字段、路径入参字段以及请求体入参字段。
参数命名以入参设置的字段名,并针对每个指定参数(指定的查询参数、指定的路径参数、指定的请求体参数),基于字段名,生成相应的字段描述的查询入参字段、路径入参字段以及请求体入参字段,并生成相应的字段注释。
第四步:将所述查询入参字段、所述路径入参字段以及所述请求体入参字段插入所述初始模板代码,得到模板代码。
将查询入参字段、所述路径入参字段以及所述请求体入参字段分别插入到模板代码中,由此生产出了模板代码。后续,模板代码可以交由服务端结合第一接口信息生成第一目标代码,也可以交由客户端,客户端渲染展示出编码界面,使用者可以在上述代码中继续编写逻辑。
在本说明书一个可选的实施例中,前述步骤S106服务端生成模板代码后,由服务端继续执行S108~110,在实际应用中,可以直接将S106生成的模板代码,由用户通过客户端选择当前编排任务所需要编排的待编排服务接口,而非使用全部的待编排服务接口生成目标服务接口,具体的方案可如下,如图3所示:
S300:服务端将所述模板代码发送给所述客户端。
S302:客户端响应于所述服务端发送的模板代码,展示编码界面,所述编码界面中展示接口列表。
具体的,在客户端接收到模板代码时,可渲染展示出编码界面,该编码界面可指示用户对代码进行逻辑编写,或者采取点击、拖拽等交互动作。
在本说明书实施例中,编码界面中还展示了接口列表,接口列表中包括多个已生成的待编排服务接口的标识,用户可以基于编排任务,灵活选择待编排服务接口,而非是在步骤S100输入了哪些待编排服务接口的第一接口信息,就只能使用这些待编排服务接口执行编排任务,以生成目标服务接口。
S304:响应于所述用户输入的选择操作,从所述接口列表包含所述待编排服务接口的标识中,选择至少一个候选服务接口的标识。
在此步骤中,用户可通过客户端输入选择操作,从接口列表包含所述待编排服务接口的标识中候选服务接口的标识,该候选服务接口即为执行编排任务的服务接口。
一般的,不同的服务接口对应于不同的标识,也即,服务接口对对应的标识是唯一的。
S306:客户端将所述候选服务接口的标识发送给所述服务端。
S308:服务端接收所述客户端发送的候选服务接口的标识,根据所述候选服务接口的标识,查询所述候选服务接口的接口信息,并根据所述候选服务接口的接口信息和所述模板代码,生成调用所述候选服务接口的第一目标代码。
服务端在接收到候选服务接口的标识后,可基于候选服务接口的标识,从数据库找那个查找到候选服务接口的路径、参数等接口信息,从而,基于候选服务接口的接口信息,自动生成调用该候选服务接口方法的代码,之后,将调用该候选服务接口方法的代码插入模板代码中的相应位置,得到调用所述候选服务接口的第一目标代码。
在本说明书一个可选的实施例中,上述步骤S116调试第二目标代码具体可通过下述方案实现,如图4所示:
S400:客户端展示调试界面,响应于所述用户通过所述调试界面输入的测试操作,将所述第二目标代码发送给所述服务端。
本说明书中,采用基于第二目标代码生成目标服务接口,对生成的目标服务接口执行业务时的性能进行评估的方式对第二目标代码进行调试。由此,进入调试流程后,首先,客户端会展示调试界面,调试界面中包含测试控件,用户通过对测试控件进行点击等操作即可输入测试操作。客户端可将第二目标代码发送给服务端,以便进行测试。
S402:服务端接收并编译所述第二目标代码,初始化所述目标服务接口的类实例,调用所述目标服务接口的类实例,以通过所述目标服务接口执行业务,得到测试结果以及测试日志,所述测试日志中至少包括当前测试对应的通用唯一识别码。
具体的,服务端根据第二目标代码进行编译,加载和初始化类,得到目标服务接口对应的类实例,之后调用目标服务接口对应的类实例,执行相应的接口方法,以执行业务。
并且,在每次测试中调用目标服务接口执行业务时,都可以生成一个唯一的通用唯一识别码(Universally Unique Identifier,UUID),并在将log打印的测试日志收集到redis中,存储的key为该次测试的UUID,执行完成后,返回测试结果。
测试日志中包括测试开始时间和结束时间、目标服务接口的标识、测试结果、请求参数和响应结果(包括请求头、请求体、响应头、响应体等)、错误信息和异常信息、执行时间和耗时、环境信息和配置信息(包括测试环境、接口地址、端口号、数据库连接)等。
S404:服务端将所述当前测试对应的通用唯一识别码返回给所述客户端。
S406:客户端接收所述服务端发送的当前测试对应的通用唯一识别码。
S408:根据所述当前测试对应的通用唯一识别码生成日志获取请求,并将所述日志获取请求发送给所述服务端。
客户端可以向服务端请求获取测试日志,以便基于测试日志记录的目标服务接口在执行业务时的性能(或是否正常工作),对第二目标代码进行调试和修改。由于每个UUID与每次测试的测试日志相对应,客户端基于UUID生成日志获取请求,即可指示客户端需要采用哪次测试的测试日志对第二目标代码进行调试和修改。
S410:服务端接收所述客户端发送的日志获取请求,根据所述日志获取请求中携带的通用唯一识别码,查找测试日志,并将查找到的测试日志发送给所述客户端。
由于在redis中,存储的key为每次测试生成的UUID,value是每次测试的测试日志,因此,基于客户端发送的日志获取请求中携带的UUID,即可查找到测试日志。
S412:客户端接收所述服务端发送的测试日志,根据所述测试日志对所述第二目标代码进行调试,直至调试完成。
实际应用中,根据测试日志至对第二目标代码进行一次调试后,可以基于调试后的第二目标代码返回执行步骤S400,以便执行下一次测试和调试,经过多次测试和调试后,目标服务接口执行业务的性能满足要求后,即为调试完成。
完成调试后,点击发布接口,客户端将上述编排接口信息,包含编排接口标识code、版本号version 和第二目标代码,上传到服务端,服务端接收后,将第二目标代码进行md5哈希算法处理,生成128散列值作为该第二目标代码的标识MD5Code,将上述信息转存入到数据库中,体现为数据库的编排接口表的一行数据记录。
在本说明书一个可选的实施例中,为了防止服务端缓存的目标服务接口的类实例数量过多,而造成的内存溢出(Out Of Memory,OOM),服务端的本地缓存可采取最近最少使用策略(Least Recently Used,LRU)。具体通过下述方案实现,如图5所示:
S500:确定所述服务端的本地缓存中存储的各服务接口对应的类实例的数量,并确定所述各服务接口对应的类实例的数量是否超过预设数量阈值。
如果各服务接口对应的类实例的数量没有超过预设数量阈值,则说明服务端的本地缓存出现OOM的概率不大,无需从本地缓存中删除服务接口对应的类实例,因此,无需进行任何操作。
如果各服务接口对应的类实例的数量超过预设数量阈值,则说明服务端的本地缓存出现OOM的概率较大,需要将最近时段不经常使用的服务接口从本地缓存中删除服务接口对应的类实例,以降低本地缓存出现OOM的概率。
S502:若各服务接口对应的类实例的数量超过预设数量阈值,则获取所述各服务接口对应的类实例分别对应的调用记录,所述调用记录包含所述服务接口对应的类实例的调用时刻和调用次数。
本说明书中,采用LRU策略应对本地缓存可能出现的OOM。LRU策略是将本地缓存中最近时段内调用次数较少的服务接口对应的类实例删除的策略。因此,需要获取调用记录,该调用记录中包含有各服务接口对应的类实例分别对应的调用时刻和调用次数。
S504:根据所述调用记录中所述各服务接口对应的类实例分别对应的调用时刻和调用次数,从所述各服务接口中筛选出至少一个待删除接口,并从所述服务端的本地缓存中将所述待删除接口对应的类实例进行删除。
在选择待删除接口时,可先基于各服务接口对应的类实例分别对应的调用时刻,确定最近时段,之后,基于调用时刻和调用次数,确定调用时刻落入最近时段的各服务接口对应的类实例中,调用次数少于预设次数的服务接口,作为待删除接口。待删除接口的数量可以根据应用场景灵活变动,一般的,需要降低本地缓存出现OOM的可能性,因此,可以将从本地缓存中删除待删除接口的类实例后,剩余的服务接口的类实例的数量是否低于预设数量阈值作为确定待删除接口的参考。
另外,服务端在启动时,会从数据库先查询一遍所有的已生成的服务接口,对所有的服务接口的第二目标代码进行实例化并缓存到服务器的本地内存,其目的是以防止服务刚启动时,大量的不命中缓存导致的编译和加载服务接口的第二目标代码,造成短时性能负载RT过高。
以上为本说明书的一个或多个实施例提供的服务接口的处理方法,基于同样的思路,本说明书还提供了相应的服务接口的处理装置,如图6和图7所示。
图6为本说明书提供的一种服务接口的处理装置示意图,所述装置应用于客户端,具体包括:
第一接口信息获取模块600,用于响应于用户输入的待编排服务接口的第一接口信息,并将所述第一接口信息发送给服务端;
第二接口信息获取模块602,用于响应于所述用户输入的目标服务接口的第二接口信息,并将所述第二接口信息发送给所述服务端,以使所述服务端根据所述第二接口信息生成模板代码,并根据所述第一接口信息和所述模板代码,生成并返回调用所述待编排服务接口的第一目标代码;其中,所述模板代码至少包括用于调用所述第二接口信息的代码;
处理逻辑代码确定模块604,用于接收所述服务端发送的第一目标代码,并响应于所述用户输入的指定操作,根据所述指定操作和所述第一目标代码,确定针对所述待编排服务接口的处理逻辑代码;
第二目标代码确定模块606,用于根据所述第一目标代码和所述处理逻辑代码,确定用于生成所述目标服务接口的第二目标代码;
调试模块608,用于调试所述第二目标代码,并在调试完成后,向所述服务端发送接口发布请求,以便所述服务端响应所述接口发布请求,生成所述目标服务接口;
调用请求发送模块610,用于响应于所述用户输入的调用操作,确定用于调用所述目标服务接口的调用参数,根据所述调用参数生成调用请求,并将所述调用请求发送给所述服务端,以使所述服务端响应于所述调用请求,根据所述调用参数调用所述目标服务接口,以通过所述目标服务接口执行业务。
可选地,所述装置还包括:
候选服务接口确定模块612,具体用于接收所述服务端发送的模板代码,展示编码界面,所述编码界面中展示接口列表;响应于所述用户输入的选择操作,从所述接口列表包含所述待编排服务接口的标识中,选择至少一个候选服务接口的标识;将所述候选服务接口的标识发送给所述服务端,以使所述服务端根据所述候选服务接口的标识,查询所述候选服务接口的接口信息,并根据所述候选服务接口的接口信息和所述模板代码,生成调用所述候选服务接口的第一目标代码。
可选地,所述调试模块608具体用于,展示调试界面;响应于所述用户通过所述调试界面输入的测试操作,将所述第二目标代码发送给所述服务端,以便所述服务端接收并编译所述第二目标代码,初始化所述目标服务接口的类实例,调用所述目标服务接口的类实例,以通过所述目标服务接口执行业务,得到测试结果以及测试日志,所述测试日志中至少包括当前测试对应的通用唯一识别码;接收所述服务端发送的当前测试对应的通用唯一识别码;根据所述当前测试对应的通用唯一识别码生成日志获取请求,并将所述日志获取请求发送给所述服务端,以使所述服务端根据所述日志获取请求中携带的通用唯一识别码,查找测试日志,并将查找到的测试日志发送给所述客户端;接收所述服务端发送的测试日志,根据所述测试日志对所述第二目标代码进行调试,直至调试完成。
图7为本说明书提供的一种服务接口的处理装置示意图,所述装置应用于服务端,具体包括:
第一接口信息接收模块700,用于接收所述客户端发送的所述待编排服务接口的第一接口信息;
模板代码生成模块702,用于接收所述客户端发送的所述目标服务接口的第二接口信息,并根据所述第二接口信息生成模板代码,所述模板代码至少包括用于调用所述第二接口信息的代码;
第一目标代码生成模块704,用于根据所述第一接口信息和所述模板代码,生成调用所述待编排服务接口的第一目标代码;
第一目标代码发送模块706,用于将所述第一目标代码返回给所述客户端,以便所述客户端响应于所述用户输入的指定操作,根据所述指定操作和所述第一目标代码,确定针对所述待编排服务接口的处理逻辑代码,并根据所述第一目标代码和所述处理逻辑代码,确定用于生成所述目标服务接口的第二目标代码,调试所述第二目标代码,并在调试完成后,向所述服务端发送接口发布请求;
目标服务接口生成模块708,用于响应于所述客户端发送的接口发布请求,根据所述接口发布请求中携带的第二目标代码,生成所述目标服务接口;
调用参数确定模块710,用于响应于所述客户端发送的调用请求,从所述服务接口调用请求中解析得到所述目标服务接口的调用参数;其中,所述调用请求是由所述客户端响应所述用户输入的调用操作,确定用于调用所述目标服务接口的调用参数,根据所述调用参数生成并发送的;
目标服务接口调用模块712,用于根据所述目标服务接口的调用参数,调用所述目标服务接口,以通过所述目标服务接口执行业务。
可选地,所述目标服务接口调用模块712还用于,根据所述目标服务接口的调用参数,查找所述服务端的本地缓存中是否存在所述目标服务接口对应的类实例;若不存在,根据所述目标服务接口的标识,查找所述第二目标代码,编译查找到的所述第二目标代码,初始化所述目标服务接口的类实例,并将所述目标服务接口对应的类实例存储在所述服务端的本地缓存;
可选地,所述目标服务接口调用模块712具体用于,调用所述目标服务接口的类实例,以通过所述目标服务接口执行业务。
可选地,所述模板代码生成模块702具体用于,获取预先定义的初始模板代码,所述初始模板代码中包含与第二接口信息相对应的查询参数对应的对象、路径参数对应的对象和请求体参数对应的对象;根据所述第二接口信息中入参对应的入参格式,生成参数获取代码;通过所述参数获取代码,从所述查询参数对应的对象中获取指定的查询参数、从所述路径参数对应的对象中获取指定的路径参数,以及从所述请求体参数对应的对象中获取指定的请求体参数;根据第二接口信息中入参对应的字段名、所述指定的查询参数、所述指定的路径参数以及所述指定的请求体参数,生成查询入参字段、路径入参字段以及请求体入参字段;将所述查询入参字段、所述路径入参字段以及所述请求体入参字段插入所述初始模板代码,得到模板代码。
可选地,所述装置还包括:
候选接口信息确定模块714,具体用于将所述模板代码发送给所述客户端,以使所述客户端响应于所述服务端发送的模板代码,展示包含接口列表的编码界面,并响应于所述用户输入的选择操作,从所述接口列表包含的所述待编排服务接口的标识中,选择至少一个候选服务接口的标识,并返回所述候选服务接口的标识;接收所述客户端发送的候选服务接口的标识,根据所述候选服务接口的标识,查询所述候选服务接口的接口信息;根据所述候选服务接口的接口信息和所述模板代码,生成调用所述候选服务接口的第一目标代码。
可选地,所述装置还包括:
测试模块716,具体用于接收有所述客户端发送的第二目标代码;编译所述第二目标代码,初始化所述目标服务接口的类实例;调用所述目标服务接口的类实例,以通过所述目标服务接口执行业务,得到测试结果以及测试日志,所述测试日志中至少包括当前测试对应的通用唯一识别码;将所述当前测试对应的通用唯一识别码返回给所述客户端,以使所述客户端根据所述当前测试对应的通用唯一识别码生成并返回日志获取请求;接收所述客户端发送的日志获取请求,根据所述日志获取请求中携带的通用唯一识别码,查找测试日志,并将查找到的测试日志发送给所述客户端,以便所述客户端根据所述测试日志对所述第二目标代码进行调试,直至调试完成。
可选地,所述装置还包括:
删除模块718,具体用于确定所述服务端的本地缓存中存储的各服务接口对应的类实例的数量;确定所述各服务接口对应的类实例的数量是否超过预设数量阈值;若是,获取所述各服务接口对应的类实例分别对应的调用记录,所述调用记录包含所述服务接口对应的类实例的调用时刻和调用次数;根据所述调用记录中所述各服务接口对应的类实例分别对应的调用时刻和调用次数,从所述各服务接口中筛选出至少一个待删除接口,并从所述服务端的本地缓存中将所述待删除接口对应的类实例进行删除。
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1所示的服务接口的处理方法。
本说明书还提供了图8所示的电子设备的示意结构图。如图8所述,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所示的服务接口的处理方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device, PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
Claims (15)
1.一种服务接口的处理系统,其特征在于,所述系统包括:客户端和服务端;
所述客户端,用于响应于用户输入的待编排服务接口的第一接口信息,并将所述第一接口信息发送给所述服务端;响应于所述用户输入的目标服务接口的第二接口信息,并将所述第二接口信息发送给所述服务端;接收所述服务端发送的第一目标代码,并响应于所述用户输入的指定操作,根据所述指定操作和所述第一目标代码,确定针对所述待编排服务接口的处理逻辑代码,其中,所述指定操作指的是所述用户基于所述第一目标代码编写处理逻辑代码的操作;根据所述第一目标代码和所述处理逻辑代码,确定用于生成所述目标服务接口的第二目标代码;调试所述第二目标代码,并在调试完成后,向所述服务端发送接口发布请求;响应于所述用户输入的调用操作,确定用于调用所述目标服务接口的调用参数,根据所述调用参数生成调用请求,并将所述调用请求发送给所述服务端;
所述服务端,用于接收所述客户端发送的所述待编排服务接口的第一接口信息;接收所述客户端发送的所述目标服务接口的第二接口信息,并根据所述第二接口信息生成模板代码,所述模板代码至少包括用于调用所述第二接口信息的代码;根据所述第一接口信息和所述模板代码,生成调用所述待编排服务接口的第一目标代码;将所述第一目标代码返回给所述客户端;响应于所述客户端发送的接口发布请求,根据所述接口发布请求中携带的第二目标代码,生成所述目标服务接口;响应于所述客户端发送的调用请求,从所述服务接口调用请求中解析得到所述目标服务接口的调用参数,根据所述目标服务接口的调用参数,调用所述目标服务接口,以通过所述目标服务接口执行业务;
所述服务端,具体用于获取预先定义的初始模板代码,所述初始模板代码中包含与第二接口信息相对应的查询参数对应的对象、路径参数对应的对象和请求体参数对应的对象;根据所述第二接口信息中入参对应的入参格式,生成参数获取代码;通过所述参数获取代码,从所述查询参数对应的对象中获取指定的查询参数、从所述路径参数对应的对象中获取指定的路径参数,以及从所述请求体参数对应的对象中获取指定的请求体参数;根据第二接口信息中入参对应的字段名、所述指定的查询参数、所述指定的路径参数以及所述指定的请求体参数,生成查询入参字段、路径入参字段以及请求体入参字段;将所述查询入参字段、所述路径入参字段以及所述请求体入参字段插入所述初始模板代码,得到模板代码。
2.如权利要求1所述的系统,其特征在于,所述服务端,还用于将所述模板代码发送给所述客户端;接收所述客户端发送的候选服务接口的标识,根据所述候选服务接口的标识,查询所述候选服务接口的接口信息,并根据所述候选服务接口的接口信息和所述模板代码,生成调用所述候选服务接口的第一目标代码;
所述客户端,还用于响应于所述服务端发送的模板代码,展示编码界面,所述编码界面中展示接口列表;响应于所述用户输入的选择操作,从所述接口列表包含所述待编排服务接口的标识中,选择至少一个候选服务接口的标识;将所述候选服务接口的标识发送给所述服务端。
3.如权利要求1所述的系统,其特征在于,所述客户端,具体用于展示调试界面,响应于所述用户通过所述调试界面输入的测试操作,将所述第二目标代码发送给所述服务端;接收所述服务端发送的当前测试对应的通用唯一识别码;根据所述当前测试对应的通用唯一识别码生成日志获取请求,并将所述日志获取请求发送给所述服务端;接收所述服务端发送的测试日志,根据所述测试日志对所述第二目标代码进行调试,直至调试完成;
所述服务端,还用于接收并编译所述第二目标代码,初始化所述目标服务接口的类实例,调用所述目标服务接口的类实例,以通过所述目标服务接口执行业务,得到测试结果以及测试日志,所述测试日志中至少包括当前测试对应的通用唯一识别码;将所述当前测试对应的通用唯一识别码返回给所述客户端;接收所述客户端发送的日志获取请求,根据所述日志获取请求中携带的通用唯一识别码,查找测试日志,并将查找到的测试日志发送给所述客户端。
4.一种服务接口的处理方法,其特征在于,所述方法应用于客户端,所述方法包括:
响应于用户输入的待编排服务接口的第一接口信息,并将所述第一接口信息发送给服务端;
响应于所述用户输入的目标服务接口的第二接口信息,并将所述第二接口信息发送给所述服务端,以使所述服务端根据所述第二接口信息生成模板代码,并根据所述第一接口信息和所述模板代码,生成并返回调用所述待编排服务接口的第一目标代码;其中,所述模板代码至少包括用于调用所述第二接口信息的代码;
接收所述服务端发送的第一目标代码,并响应于所述用户输入的指定操作,根据所述指定操作和所述第一目标代码,确定针对所述待编排服务接口的处理逻辑代码;其中,所述指定操作指的是所述用户基于所述第一目标代码编写处理逻辑代码的操作;
根据所述第一目标代码和所述处理逻辑代码,确定用于生成所述目标服务接口的第二目标代码;
调试所述第二目标代码,并在调试完成后,向所述服务端发送接口发布请求,以便所述服务端响应所述接口发布请求,生成所述目标服务接口;
响应于所述用户输入的调用操作,确定用于调用所述目标服务接口的调用参数,根据所述调用参数生成调用请求,并将所述调用请求发送给所述服务端,以使所述服务端响应于所述调用请求,根据所述调用参数调用所述目标服务接口,以通过所述目标服务接口执行业务;
其中,所述模板代码是由所述服务端基于下述步骤得到的:
获取预先定义的初始模板代码,所述初始模板代码中包含与第二接口信息相对应的查询参数对应的对象、路径参数对应的对象和请求体参数对应的对象;根据所述第二接口信息中入参对应的入参格式,生成参数获取代码;通过所述参数获取代码,从所述查询参数对应的对象中获取指定的查询参数、从所述路径参数对应的对象中获取指定的路径参数,以及从所述请求体参数对应的对象中获取指定的请求体参数;根据第二接口信息中入参对应的字段名、所述指定的查询参数、所述指定的路径参数以及所述指定的请求体参数,生成查询入参字段、路径入参字段以及请求体入参字段;将所述查询入参字段、所述路径入参字段以及所述请求体入参字段插入所述初始模板代码,得到模板代码。
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
接收所述服务端发送的模板代码,展示编码界面,所述编码界面中展示接口列表;
响应于用户输入的选择操作,从所述接口列表包含所述待编排服务接口的标识中,选择至少一个候选服务接口的标识;
将所述候选服务接口的标识发送给所述服务端,以使所述服务端根据所述候选服务接口的标识,查询所述候选服务接口的接口信息,并根据所述候选服务接口的接口信息和所述模板代码,生成调用所述候选服务接口的第一目标代码。
6.如权利要求4所述的方法,其特征在于,所述调试所述第二目标代码,具体包括:
展示调试界面;
响应于所述用户通过所述调试界面输入的测试操作,将所述第二目标代码发送给所述服务端,以便所述服务端接收并编译所述第二目标代码,初始化所述目标服务接口的类实例,调用所述目标服务接口的类实例,以通过所述目标服务接口执行业务,得到测试结果以及测试日志,所述测试日志中至少包括当前测试对应的通用唯一识别码;
接收所述服务端发送的当前测试对应的通用唯一识别码;
根据所述当前测试对应的通用唯一识别码生成日志获取请求,并将所述日志获取请求发送给所述服务端,以使所述服务端根据所述日志获取请求中携带的通用唯一识别码,查找测试日志,并将查找到的测试日志发送给所述客户端;
接收所述服务端发送的测试日志,根据所述测试日志对所述第二目标代码进行调试,直至调试完成。
7.一种服务接口的处理方法,其特征在于,所述方法应用于服务端,所述方法包括:
接收客户端发送的待编排服务接口的第一接口信息;
接收所述客户端发送的目标服务接口的第二接口信息,并根据所述第二接口信息生成模板代码,所述模板代码至少包括用于调用所述第二接口信息的代码;
根据所述第一接口信息和所述模板代码,生成调用所述待编排服务接口的第一目标代码;
将所述第一目标代码返回给所述客户端,以便所述客户端响应于用户输入的指定操作,根据所述指定操作和所述第一目标代码,确定针对所述待编排服务接口的处理逻辑代码,并根据所述第一目标代码和所述处理逻辑代码,确定用于生成所述目标服务接口的第二目标代码,调试所述第二目标代码,并在调试完成后,向所述服务端发送接口发布请求;其中,所述指定操作指的是所述用户基于所述第一目标代码编写处理逻辑代码的操作;
响应于所述客户端发送的接口发布请求,根据所述接口发布请求中携带的第二目标代码,生成所述目标服务接口;
响应于所述客户端发送的调用请求,从所述服务接口调用请求中解析得到所述目标服务接口的调用参数;其中,所述调用请求是由所述客户端响应所述用户输入的调用操作,确定用于调用所述目标服务接口的调用参数,根据所述调用参数生成并发送的;
根据所述目标服务接口的调用参数,调用所述目标服务接口,以通过所述目标服务接口执行业务;
所述根据所述第二接口信息生成模板代码,具体包括:
获取预先定义的初始模板代码,所述初始模板代码中包含与第二接口信息相对应的查询参数对应的对象、路径参数对应的对象和请求体参数对应的对象;
根据所述第二接口信息中入参对应的入参格式,生成参数获取代码;
通过所述参数获取代码,从所述查询参数对应的对象中获取指定的查询参数、从所述路径参数对应的对象中获取指定的路径参数,以及从所述请求体参数对应的对象中获取指定的请求体参数;
根据第二接口信息中入参对应的字段名、所述指定的查询参数、所述指定的路径参数以及所述指定的请求体参数,生成查询入参字段、路径入参字段以及请求体入参字段;
将所述查询入参字段、所述路径入参字段以及所述请求体入参字段插入所述初始模板代码,得到模板代码。
8.如权利要求7所述的方法,其特征在于,所述根据所述目标服务接口的调用参数,调用所述目标服务接口之前,所述方法还包括:
根据所述目标服务接口的调用参数,查找所述服务端的本地缓存中是否存在所述目标服务接口对应的类实例;
若不存在,根据所述目标服务接口的标识,查找所述第二目标代码,编译查找到的所述第二目标代码,初始化所述目标服务接口的类实例,并将所述目标服务接口对应的类实例存储在所述服务端的本地缓存;
根据所述目标服务接口的调用参数,调用所述目标服务接口,以通过所述目标服务接口执行业务,具体包括:
调用所述目标服务接口的类实例,以通过所述目标服务接口执行业务。
9.如权利要求7所述的方法,其特征在于,所述方法还包括:
将所述模板代码发送给所述客户端,以使所述客户端响应于所述服务端发送的模板代码,展示包含接口列表的编码界面,并响应于所述用户输入的选择操作,从所述接口列表包含的所述待编排服务接口的标识中,选择至少一个候选服务接口的标识,并返回所述候选服务接口的标识;
接收所述客户端发送的候选服务接口的标识,根据所述候选服务接口的标识,查询所述候选服务接口的接口信息;
根据所述候选服务接口的接口信息和所述模板代码,生成调用所述候选服务接口的第一目标代码。
10.如权利要求7所述的方法,其特征在于,所述响应于所述客户端发送的接口发布请求,根据所述接口发布请求中携带的第二目标代码,生成所述目标服务接口之前,所述方法还包括:
接收有所述客户端发送的第二目标代码;
编译所述第二目标代码,初始化所述目标服务接口的类实例;
调用所述目标服务接口的类实例,以通过所述目标服务接口执行业务,得到测试结果以及测试日志,所述测试日志中至少包括当前测试对应的通用唯一识别码;
将所述当前测试对应的通用唯一识别码返回给所述客户端,以使所述客户端根据所述当前测试对应的通用唯一识别码生成并返回日志获取请求;
接收所述客户端发送的日志获取请求,根据所述日志获取请求中携带的通用唯一识别码,查找测试日志,并将查找到的测试日志发送给所述客户端,以便所述客户端根据所述测试日志对所述第二目标代码进行调试,直至调试完成。
11.如权利要求7所述的方法,其特征在于,所述根据所述目标服务接口的调用参数,调用所述目标服务接口之前,所述方法还包括:
确定所述服务端的本地缓存中存储的各服务接口对应的类实例的数量;
确定所述各服务接口对应的类实例的数量是否超过预设数量阈值;
若是,获取所述各服务接口对应的类实例分别对应的调用记录,所述调用记录包含所述服务接口对应的类实例的调用时刻和调用次数;根据所述调用记录中所述各服务接口对应的类实例分别对应的调用时刻和调用次数,从所述各服务接口中筛选出至少一个待删除接口,并从所述服务端的本地缓存中将所述待删除接口对应的类实例进行删除。
12.一种服务接口的处理装置,其特征在于,所述装置应用于客户端,所述装置包括:
第一接口信息获取模块,用于响应于用户输入的待编排服务接口的第一接口信息,并将所述第一接口信息发送给服务端;
第二接口信息获取模块,用于响应于所述用户输入的目标服务接口的第二接口信息,并将所述第二接口信息发送给所述服务端,以使所述服务端根据所述第二接口信息生成模板代码,并根据所述第一接口信息和所述模板代码,生成并返回调用所述待编排服务接口的第一目标代码;其中,所述模板代码至少包括用于调用所述第二接口信息的代码;
处理逻辑代码确定模块,用于接收所述服务端发送的第一目标代码,并响应于所述用户输入的指定操作,根据所述指定操作和所述第一目标代码,确定针对所述待编排服务接口的处理逻辑代码;其中,所述指定操作指的是所述用户基于所述第一目标代码编写处理逻辑代码的操作;
第二目标代码确定模块,用于根据所述第一目标代码和所述处理逻辑代码,确定用于生成所述目标服务接口的第二目标代码;
调试模块,用于调试所述第二目标代码,并在调试完成后,向所述服务端发送接口发布请求,以便所述服务端响应所述接口发布请求,生成所述目标服务接口;
调用请求发送模块,用于响应于所述用户输入的调用操作,确定用于调用所述目标服务接口的调用参数,根据所述调用参数生成调用请求,并将所述调用请求发送给所述服务端,以使所述服务端响应于所述调用请求,根据所述调用参数调用所述目标服务接口,以通过所述目标服务接口执行业务;
其中,所述模板代码是由所述服务端基于下述步骤得到的:
获取预先定义的初始模板代码,所述初始模板代码中包含与第二接口信息相对应的查询参数对应的对象、路径参数对应的对象和请求体参数对应的对象;根据所述第二接口信息中入参对应的入参格式,生成参数获取代码;通过所述参数获取代码,从所述查询参数对应的对象中获取指定的查询参数、从所述路径参数对应的对象中获取指定的路径参数,以及从所述请求体参数对应的对象中获取指定的请求体参数;根据第二接口信息中入参对应的字段名、所述指定的查询参数、所述指定的路径参数以及所述指定的请求体参数,生成查询入参字段、路径入参字段以及请求体入参字段;将所述查询入参字段、所述路径入参字段以及所述请求体入参字段插入所述初始模板代码,得到模板代码。
13.一种服务接口的处理装置,其特征在于,所述装置应用于服务端,所述装置包括:
第一接口信息接收模块,用于接收客户端发送的待编排服务接口的第一接口信息;
模板代码生成模块,用于接收所述客户端发送的目标服务接口的第二接口信息,并根据所述第二接口信息生成模板代码,所述模板代码至少包括用于调用所述第二接口信息的代码;
第一目标代码生成模块,用于根据所述第一接口信息和所述模板代码,生成调用所述待编排服务接口的第一目标代码;
第一目标代码发送模块,用于将所述第一目标代码返回给所述客户端,以便所述客户端响应于用户输入的指定操作,根据所述指定操作和所述第一目标代码,确定针对所述待编排服务接口的处理逻辑代码,并根据所述第一目标代码和所述处理逻辑代码,确定用于生成所述目标服务接口的第二目标代码,调试所述第二目标代码,并在调试完成后,向所述服务端发送接口发布请求;其中,所述指定操作指的是所述用户基于所述第一目标代码编写处理逻辑代码的操作;
目标服务接口生成模块,用于响应于所述客户端发送的接口发布请求,根据所述接口发布请求中携带的第二目标代码,生成所述目标服务接口;
调用参数确定模块,用于响应于所述客户端发送的调用请求,从所述服务接口调用请求中解析得到所述目标服务接口的调用参数;其中,所述调用请求是由所述客户端响应所述用户输入的调用操作,确定用于调用所述目标服务接口的调用参数,根据所述调用参数生成并发送的;
目标服务接口调用模块,用于根据所述目标服务接口的调用参数,调用所述目标服务接口,以通过所述目标服务接口执行业务;
所述模板代码生成模块具体用于,获取预先定义的初始模板代码,所述初始模板代码中包含与第二接口信息相对应的查询参数对应的对象、路径参数对应的对象和请求体参数对应的对象;根据所述第二接口信息中入参对应的入参格式,生成参数获取代码;通过所述参数获取代码,从所述查询参数对应的对象中获取指定的查询参数、从所述路径参数对应的对象中获取指定的路径参数,以及从所述请求体参数对应的对象中获取指定的请求体参数;根据第二接口信息中入参对应的字段名、所述指定的查询参数、所述指定的路径参数以及所述指定的请求体参数,生成查询入参字段、路径入参字段以及请求体入参字段;将所述查询入参字段、所述路径入参字段以及所述请求体入参字段插入所述初始模板代码,得到模板代码。
14.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求4~6或7~11任一项所述的方法。
15.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求4~6或7~11任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311665193.8A CN117369784B (zh) | 2023-12-06 | 2023-12-06 | 一种服务接口的处理系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311665193.8A CN117369784B (zh) | 2023-12-06 | 2023-12-06 | 一种服务接口的处理系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117369784A CN117369784A (zh) | 2024-01-09 |
CN117369784B true CN117369784B (zh) | 2024-03-05 |
Family
ID=89404425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311665193.8A Active CN117369784B (zh) | 2023-12-06 | 2023-12-06 | 一种服务接口的处理系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117369784B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016196701A1 (en) * | 2015-06-05 | 2016-12-08 | Microsoft Technology Licensing, Llc | Natural language engine for coding and debugging |
CN114816591A (zh) * | 2022-05-20 | 2022-07-29 | 中广核工程有限公司 | 服务接口处理方法、装置、计算机设备和存储介质 |
CN115509522A (zh) * | 2022-10-31 | 2022-12-23 | 北京百度网讯科技有限公司 | 面向低代码场景的接口编排方法、系统、电子设备 |
CN116149747A (zh) * | 2022-10-25 | 2023-05-23 | 马上消费金融股份有限公司 | 接口编排方法、装置、电子设备和计算机可读存储介质 |
CN116360769A (zh) * | 2023-03-07 | 2023-06-30 | 平安壹钱包电子商务有限公司 | 代码生成方法、装置、设备及存储介质 |
CN116668520A (zh) * | 2023-05-05 | 2023-08-29 | 杭州熔合智造科技有限公司 | 一种基于网关的服务编排方法、系统、设备及存储介质 |
CN116755754A (zh) * | 2023-04-18 | 2023-09-15 | 中电金信技术有限公司 | 服务接口生成方法、装置及电子设备 |
CN117172214A (zh) * | 2023-11-02 | 2023-12-05 | 企查查科技股份有限公司 | Api文件转换方法、系统及计算机存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AUPR559101A0 (en) * | 2001-06-08 | 2001-07-12 | Canon Kabushiki Kaisha | Card for service access |
US10741091B2 (en) * | 2016-02-05 | 2020-08-11 | ThinkCERCA.com, Inc. | Methods and systems for mitigating the effects of intermittent network connectivity in educational settings |
US20210263834A1 (en) * | 2020-02-20 | 2021-08-26 | 4Logik LLC | Code Generation Platform |
-
2023
- 2023-12-06 CN CN202311665193.8A patent/CN117369784B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016196701A1 (en) * | 2015-06-05 | 2016-12-08 | Microsoft Technology Licensing, Llc | Natural language engine for coding and debugging |
CN114816591A (zh) * | 2022-05-20 | 2022-07-29 | 中广核工程有限公司 | 服务接口处理方法、装置、计算机设备和存储介质 |
CN116149747A (zh) * | 2022-10-25 | 2023-05-23 | 马上消费金融股份有限公司 | 接口编排方法、装置、电子设备和计算机可读存储介质 |
CN115509522A (zh) * | 2022-10-31 | 2022-12-23 | 北京百度网讯科技有限公司 | 面向低代码场景的接口编排方法、系统、电子设备 |
CN116360769A (zh) * | 2023-03-07 | 2023-06-30 | 平安壹钱包电子商务有限公司 | 代码生成方法、装置、设备及存储介质 |
CN116755754A (zh) * | 2023-04-18 | 2023-09-15 | 中电金信技术有限公司 | 服务接口生成方法、装置及电子设备 |
CN116668520A (zh) * | 2023-05-05 | 2023-08-29 | 杭州熔合智造科技有限公司 | 一种基于网关的服务编排方法、系统、设备及存储介质 |
CN117172214A (zh) * | 2023-11-02 | 2023-12-05 | 企查查科技股份有限公司 | Api文件转换方法、系统及计算机存储介质 |
Non-Patent Citations (1)
Title |
---|
基于模板的.Net三层架构的代码自动生成;刘于新;姚凯学;许道云;;计算机技术与发展;20120810(第08期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117369784A (zh) | 2024-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109542506B (zh) | 一种可灵活配置接口和快速交付服务的系统 | |
CN112307509B (zh) | 一种脱敏处理方法、设备、介质及电子设备 | |
CN111400681B (zh) | 数据权限处理方法、装置及设备 | |
CN103905231A (zh) | 对设备类型统一管理的方法和装置 | |
CN114327759B (zh) | 区块链数据的处理方法及装置 | |
CN111241040A (zh) | 信息获取方法、装置、电子设备及计算机存储介质 | |
CN110727482A (zh) | 一种界面的更新方法和装置 | |
CN110430255A (zh) | 分布式集群中服务请求的处理方法、系统以及电子设备 | |
CN117312394A (zh) | 一种数据访问方法、装置、存储介质及电子设备 | |
CN114648303A (zh) | 一种业务执行的方法及装置 | |
CN111355672A (zh) | 一种报文转发的方法及装置 | |
CN117369784B (zh) | 一种服务接口的处理系统及方法 | |
CN116432185B (zh) | 一种异常检测方法、装置、可读存储介质及电子设备 | |
CN111796864A (zh) | 一种数据校验的方法及装置 | |
CN113326288A (zh) | 数据处理方法、装置、电子设备 | |
CN116048977B (zh) | 一种基于数据还原的测试方法及装置 | |
CN110874322B (zh) | 一种用于应用程序的测试方法及测试服务器 | |
CN111338655A (zh) | 一种安装包分发方法和系统 | |
CN111324803A (zh) | 搜索引擎的查询请求处理方法、装置及客户端 | |
CN116049000A (zh) | 环境参数配置方法、装置、设备、存储介质及产品 | |
CN116010419A (zh) | 一种创建唯一索引和优化逻辑删除的方法及装置 | |
CN111966709B (zh) | 一种数据查询方法、装置及电子设备 | |
CN111881220B (zh) | 列表存储下的数据操作方法、装置、电子设备和存储介质 | |
CN111209062A (zh) | 信息获取方法、装置、电子设备及计算机存储介质 | |
CN117555697B (zh) | 一种面向分布式训练的缓存加载系统、方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |