CN114035841A - 接口配置信息更新方法、系统、计算机设备及存储介质 - Google Patents
接口配置信息更新方法、系统、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN114035841A CN114035841A CN202111356407.4A CN202111356407A CN114035841A CN 114035841 A CN114035841 A CN 114035841A CN 202111356407 A CN202111356407 A CN 202111356407A CN 114035841 A CN114035841 A CN 114035841A
- Authority
- CN
- China
- Prior art keywords
- interface
- platform
- information
- participating
- attribute information
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Library & Information Science (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明实施例提供了一种接口配置信息更新方法,应用于计算机设备中,方法包括:获取第一平台中针对接口的入参对象及出参对象添加的自定义注解以及在第二平台中第一用户录入的针对所述接口的接口信息;当接收到第二用户在所述第一平台触发的同步操作指令时,根据所述自定义注解生成所述入参对象及所述出参对象的多个属性信息;将所述多个属性信息从所述第一平台同步至所述第二平台,并根据所述多个属性信息对所述接口信息进行更新;根据更新后的接口信息生成接口文档。通过自定义注解,实现代码中接口的入参对象和出参对象属性的读取,实现自定义修改接口属性的配置,可以保证对外展示的接口文档是代码中关于接口入参和出参的注释是最新的。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种接口配置信息更新方法、系统、计算机设备及可读存储介质。
背景技术
现有保险业内公司进行接口文档派发时,需要开发人员完成接口文档,然后通过邮件或者其他方式发送给相关方。接口文档中描述有各个接口的配置信息。后续每次更新接口文档,通常会将修改点高亮标注后,重新通过邮件发送给相关方。这个过程会存在很多问题:
1、每次更新接口文档都需要通知相关方,极其麻烦;
2、存在接口文档和开发的代码不一致的情况;
3、一个团队维护一份接口文档,往往会存在文档覆盖的风险,导致发送的接口文档不是最新版本;
4、相关方按照接口文档开发完成后,进行开发测试联调时,无法快速定位请求信息与接口文档的差别,导致延缓需求上线进度,增加了人力成本。
基于以上的种种原因,现有保险业内公司进行接口文档派发的传统做法,不仅极其麻烦,增加了人力成本,而且往往出现接口文档和开发代码不一致的风险场景。
发明内容
有鉴于此,本发明实施例的目的是提供一种接口配置信息更新方法、系统、计算机设备及计算机可读存储介质,以解决上述传统接口文档派发做法中经常出现的接口文档和开发代码不一致的问题。
为实现上述目的,本发明实施例提供了一种接口配置信息更新方法,应用于计算机设备中,所述计算机设备安装有第一平台和第二平台,所述第一平台与所述第二平台用于接口信息的配置并进行通信,包括以下步骤:
获取第一平台中针对接口的入参对象及出参对象添加的自定义注解以及在第二平台中第一用户录入的针对所述接口的接口信息;
当接收到第二用户在所述第一平台触发的同步操作指令时,根据所述自定义注解生成所述入参对象及所述出参对象的多个属性信息;
将所述多个属性信息从所述第一平台同步至所述第二平台,并根据所述多个属性信息对所述接口信息进行更新;
根据更新后的接口信息生成接口文档。
可选地,所述将所述多个属性信息从所述第一平台同步至所述第二平台,包括:
根据所述多个属性信息进行目标对象的组装;
将组装后的目标对象同步至所述第二平台,以将所述多个属性信息通过所述组装后的目标对象同步至所述第二平台。
可选地,所述目标对象的组装方法包括:
判断所述入参对象和/或所述出参对象是否为自引用;
根据判断结果,采用对应的预设对象处理方法分别获取所述入参对象及所述出参对象的属性信息;
将获取的所有入参对象及所述出参对象的属性信息进行组装,得到所述目标对象。
可选地,所述方法还包括:
当所述第二平台接收到所述第一平台同步的所述多个属性信息时,根据所述多个属性信息对数据库中的接口信息进行更新。
可选地,所述根据所述多个属性信息对数据库中的接口信息进行更新,包括:
将与所述多个属性信息对应的目标接口信息与所述数据库中保存的多个原始接口信息一一进行比较;
当所述数据库中存在与所述目标接口信息对应的原始接口信息时,删除所述与所述目标接口信息对应的原始接口信息,并将所述目标接口信息作为所述更新后的接口信息插入至所述数据库中;
当所述数据库中不存在与所述目标接口信息对应的原始接口信息时,将所述目标接口信息作为所述更新后的接口信息插入至所述数据库中。
可选地,所述方法还包括:
当接收到从所述第二平台查询所述接口的接口信息的操作指令时,从所述第二平台的后端获取所述目标接口信息,以使所述后端从所述数据库查询出所述目标接口信息;
将所述目标接口信息返回至所述第二平台的前端,以通过所述前端显示所述目标接口信息。
可选地,所述第一平台设置有测试环境服务,所述方法还包括:
当接收到第三用户在所述第二平台的前端页面上针对所述接口信息发送的模拟测试请求时,生成测试请求报文;
调用所述第一平台的所述测试环境服务进行测试,以从所述测试环境服务获取测试响应信息;
将所述测试响应信息显示于所述第二平台的所述前端页面。
为实现上述目的,本发明实施例还提供了接口配置信息更新系统,所述计算机设备安装有第一平台和第二平台,所述第一平台与所述第二平台用于接口信息的配置并进行通信,包括:
获取模块,用于获取第一平台中针对接口的入参对象及出参对象添加的自定义注解以及在第二平台中第一用户录入的针对所述接口的接口信息;
第一生成模块,用于当接收到第二用户在所述第一平台触发的同步操作指令时,根据所述自定义注解生成所述入参对象及所述出参对象的多个属性信息;
同步更新模块,用于将所述多个属性信息从所述第一平台同步至所述第二平台,并根据所述多个属性信息对所述接口信息进行更新;
第二生成模块,用于根据更新后的接口信息生成接口文档。
为实现上述目的,本发明实施例还提供了一种计算机设备,所述计算机设备存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被处理器执行时实现如上所述的接口配置信息更新方法的步骤。
为实现上述目的,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如上所述的接口配置信息更新方法的步骤。
本发明实施例提供的接口配置信息更新方法、系统、计算机设备及可读存储介质,通过自定义注解,实现代码中接口的入参对象和出参对象属性的读取,实现自定义修改接口属性的配置,通过将最新的接口信息展示在第二平台的显示页面上,可以保证对外展示的接口文档是代码中关于接口入参和出参的注释是最新的,代码中的入参和出参一旦发生变化,可以再次通过新增或修改代码中的自定义注解,实现对接口文档的更新,从而保证对外展示的文档和代码一致。
附图说明
图1为本发明实施例提供的接口配置信息更新方法的一种示例性的流程示意图。
图2为图1中步骤S300中所述将所述多个属性信息从所述第一平台同步至所述第二平台的一种示例性的具体流程图。
图3为本发明实施例提供的接口配置信息更新方法的一种示例性的流程示意图。
图4为本发明实施例提供的接口配置信息更新系统的程序模块示意图。
图5为本发明实施例提供的计算机设备的硬件结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
名词解释:
前端:指的是网站的前台部分,包括网站的表现层和结构层页面。
后端:在后台工作,控制着前端的内容,主要负责程序设计架构思想,管理数据库等。
实施例一
参阅图1,示出了本发明实施例之接口配置信息更新方法的步骤流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。需要说明是,本实施例以计算机设备为执行主体进行示例性描述,所述计算机设备可以包括诸如平板电脑、笔记本电脑、掌上电脑、个人数字助理(Personal Digital Assistant,PDA)、便携式媒体播放器(Portable Media Player,PMP)等移动终端,以及诸如数字TV、台式计算机等固定终端。所述计算机设备安装有第一平台和第二平台,所述第一平台与所述第二平台用于接口信息的配置并进行通信,所述方法具体包括以下步骤:
步骤S100,获取第一平台中针对接口的入参对象及出参对象添加的自定义注解以及在第二平台中第一用户录入的针对所述接口的接口信息。
具体地,所述自定义注解可以通过反射技术实现。
在实际应用中,所述第一平台可以为交易平台,通过在所述交易平台代码中添加自定义注解,以实现对接口属性的配置。所述第二平台可以为开放平台,所述开放平台可以用于基础接口的配置,例如添加接口信息、对已有接口信息进行修改、查看接口详情等。相关方可以在所述开放平台查阅最新的接口信息,并在所述开放平台上自定义模拟测试请求,调用交易平台的测试环境服务,并获取对应的响应信息。
需要说明的是,所述接口的接口名称、接口描述、接口地址、调用方式、出参类名是在所述第二平台提前配置的。例如:接口名称为保费试算、接口描述为保费试算、接口地址为/mcp/outChannel/calculatePremium.do?c=%s、调用方式为POST、出参类名为com.paic.ehis.mcp.process.premiumcalculate.message.standard.StandardCalcResponseDataInfo。所述接口信息可以根据需求自定义修改或增加。
当然,本领域技术人员很容易得知,所述第一平台与所述第二平台也可以安装于不同的计算机设备中。本发明实施例仅以所述第一平台和所述第二平台安装于同一计算机设备中为例,进行示例性的说明。
步骤S200,当接收到第二用户在所述第一平台触发的同步操作指令时,根据所述自定义注解生成所述入参对象及所述出参对象的多个属性信息。
在本实施例中,通过增加对接口的入参对象和出参对象的自定义注解,以完善接口的属性信息。例如,对入参对象StandardCalcRequestDataInfo添加自定义注解:
import…
public class StandardCalcRequestDataInfo implements Serializable,IProductStrategy,IRequestExectorParams{
@ParamProperty(chineseParamName=“生效日期”,allowableValue=“YYYY-MM-DD”,dataType=“varchar(11)”,required=true,notes=“YYYY-MM-DD,用于计算年龄,非指定生效日情况,默认为申请日期+1”,listNo=3)
@NotBlank(message=“生效日期字段缺失”)
@Pattern(regexp=DateUtils,DEFAULT_ONLY_DAREGEX,message=“生效日期格式错误”)
Private String effDate;
@ParamProperty(chineseParamName=“产品编码”,dataType=“varchar(32)”,required=true,notes=“”,listNo=1)
@NotBlank(message=“产品编码字段缺失”)
Private String productId;
当第二用户在交易平台触发同步按钮时,所述交易平台通过反射技术,一反编译的方式根据所述自定义注解生成所述入参对象StandardCalcRequestDataInfo的属性信息。从上可看出,所述入参对象StandardCalcRequestDataInfo上添加的自定义注解包括@ParamProperty,该注解支持配置对象属性的字段中文名称、注解描述、数据类型、默认值、允许的值、允许的枚举值的类型、是否必须、是否隐藏、展示排序顺序。例如,所述入参对象StandardCalcRequestDataInfo属性包括chineseParamName="生效日期",表示所述对象的effDate属性的中文名称是生效日期;allowableValue="YYYY-MM-DD",表示所述对象的effDate属性允许的值为YYYY-MM-DD;dataType="varchar(11)",表示所述对象的effDate属性的数据类型为varchar(11),varchar(11)表示11位长度的字符串类型;required=true,表示所述对象的effDate属性是必须的;notes="YYYY-MM-DD,用于计算年龄。非指定生效日情况,默认为申请日期+1",表示注释;listNo=3,表示所述对象的effDate属性显示在接口文档入参的第三个属性。
所述入参对象StandardCalcRequestDataInfo属性还包括chineseParamName="产品编码",表示所述对象的productId属性的中文名称是产品编码;dataType="varchar(32)",表示所述对象的productId属性的数据类型为varchar(32),varchar(32)表示32位长度的字符串类型;required=true,表示所述对象的productId属性是必须的;listNo=1,表示所述对象的productId属性显示在接口文档入参的第一个属性。
具体地,当所述第一平台的同步按钮被触发时,全局扫描添加的所述自定义注解@ParamProperty的入参对象,即能扫描到所述入参对象StandardCalcRequestDataInfo,通过反射技术,可以获取到所述入参对象StandardCalcRequestDataInfo的effDate属性的信息,包括中文名称“生效日期”、允许的值“YYYY-MM-DD”,数据类型为varchar(11)等信息;同时获取到所述入参对象StandardCalcRequestDataInfo的productId属性的信息,包括中文名称“产品编码”,数据类型为(32)等信息。
当然,在第二用户触发同步按钮时,所述交易平台通过反射技术,还生成出参对象的属性信息,在本发明实施例中仅以入参对象StandardCalcRequestDataInfo为例进行示例性的说明。
步骤S300,将所述多个属性信息从所述第一平台同步至所述第二平台,并根据所述多个属性信息对所述接口信息进行更新。
步骤S400,根据更新后的接口信息生成接口文档。
在一示例性的实施例中,所述第一平台与所述第二平台通过RocketMQ技术进行通信。所述RocketMQ是一款分布式消息中间件。在示例性的实施例中,结合上述例子,在获取到所述入参对象及所述出参对象的多个属性信息后,可以将所有的入参对象及出参对象的各个属性信息组装成所述RocketMQ请求所述第二平台的通用对象InterfaceParamsDto。然后,所述第一平台通过所述RocketMQ将所述通用对象InterfaceParamsDto同步给所述第二平台,从而实现将所述入参对象及所述出参对象的多个属性信息同步至所述第二平台,并根据所述多个属性信息对所述接口信息进行更新,然后根据更新后的接口信息生成接口文档。
当所述第二平台因为网络等原因,导致消费同步接口信息异常时,RocketMQ重复进行消息的推送,直至所述第二平台消费成功为止,避免了所述第一平台因网络等原因同步所述属性信息至所述第二平台失败,确保了所述第二平台获取所述接口信息的实时性和稳定性,并提高了所述第一平台同步所述接口信息至所述第二平台的成功率。
在示例性的实施例中,如图2所示,为所述步骤S300中所述将所述多个属性信息从所述第一平台同步至所述第二平台的一种示例性的具体流程图,包括步骤S301及步骤S302。
步骤S301:根据所述多个属性信息进行目标对象的组装。
在具体实施例中,在进行目标对象的组装时,可以通过以下步骤进行实现:判断所述入参对象和/或所述出参对象是否为自引用;根据判断结果,采用对应的预设对象处理方法分别获取所述入参对象及所述出参对象的属性信息;将获取的所有入参对象和所述出参对象的属性信息进行组装,得到所述目标对象。
例如:在一示例性的具体实施例中,通过Integer size=checkCurrentClassIsSelfReference(clazz)方法判断所述对象是否为自引用类。所述对象包括入参对象和/或出参对象。遍历所述对象的所有属性,如果该属性为链表,则判断链表内的对象的类型和遍历原对象的类型名是否一致,如果一致,则为自引用,并记录自引用的层级,否则为非自引用。当所述对象为自引用类时,利用之前判断是否为自引用获取的层级关系和自定义注解来解析获取所述对象对应的属性信息。当所述对象为非自引用类时,也即所述对象为基本类时,则直接根据所述自定义注解来获取所述对象对应的属性信息。当获取到所述入参对象及所述出参对象的属性信息后,将所有的属性信息组装成统一的所述目标对象。
步骤S302:将组装后的目标对象同步至所述第二平台,以将所述多个属性信息通过所述组装后的目标对象同步至所述第二平台。
在示例性的实施例中,通过采用RocketMQ将所述目标对象同步至所述第二平台。在将所述多个属性信息通过所述组装后的目标对象同步至所述第二平台的过程中,由于所述第一平台同步至所述第二平台的对象是统一的,在这个同步的对象中,会将所述出参对象和/或所述入参对象的多个属性信息和接口的关联序号ID组装在所述对象中,并将组装后的目标对象同步给所述第二平台,所述第二平台根据所述组装后的目标对象确定所述出参对象和/或所述入参对象的多个属性信息与接口之间的关联关系,从而确定所述出参对象和/或所述入参对象的多个属性信息对应接口的接口信息。因此,在同步过程中,所述第二平台获取到所述多个属性信息后,即可确定与所述多个属性信息对应的目标接口信息。
所述根据所述多个属性信息对所述接口信息进行更新,具体包括:根据确定的所述目标接口信息对接口信息进行更新。本发明实施例通过自定义注解和反射技术,实现代码中接口的入参对象和出参对象属性的读取,实现自定义修改接口属性的配置。本发明实施例通过将最新的接口信息展示在第二平台的显示页面上,可以保证对外展示的接口文档是代码中关于接口入参和出参的注释是最新的,而代码中的入参和出参一旦发生变化,可以再次通过新增或修改代码中的自定义注解,实现对接口文档的更新,保证对外展示的文档和代码是一致的,同时在代码层面上,实现了快速的开发和部署以及敏捷开发迭代上线,极大地降低了人力开发成本。
在示例性的实施例中,所述方法还包括:
当所述第二平台接收到所述第一平台同步的所述多个属性信息时,根据所述多个属性信息对数据库中的接口信息进行更新。
具体地,在所述第二平台接收到所述第一平台同步的所述入参对象和所述出参对象的多个属性信息时,将与所述多个属性信息对应的目标接口信息与所述数据库中保存的多个原始接口信息一一进行比较;当所述数据库中存在与所述目标接口信息对应的原始接口信息时,删除所述与所述目标接口信息对应的原始接口信息,并将所述目标接口信息作为所述更新后的接口信息插入至所述数据库中;当所述数据库中不存在与所述目标接口信息对应的原始接口信息时,将所述目标接口信息作为所述更新后的接口信息插入至所述数据库中。示例性地,由于接口信息包括接口名称、接口描述、接口地址以及出参对象及入参对象的多个属性信息,当目标接口信息中的接口名称与所述数据库中保存的一个原始接口信息中的接口名称一致,则认为所述目标接口信息与该原始接口信息相对应,也即所述目标接口信息与该原始接口信息描述的是同一个接口,所述目标接口信息是对该原始接口信息的更新。
本实施例通过在接收到所述第一平台同步的多个属性信息时,及时更新数据库中的接口信息,当使用用户登录所述第二平台时,即可查看到所述更新后的接口信息,从而极大地提高了接口文档中接口信息更新的实时性。
在示例性的实施例中,所述方法还包括:
当接收到从所述第二平台查询所述接口的接口信息的操作时,从所述第二平台的后端获取所述目标接口信息,以使所述后端从所述数据库查询出所述目标接口信息;
将所述目标接口信息返回至所述第二平台的前端,以通过所述前端显示所述目标接口信息。
通过上述实施例,用户可以从第二平台随时查看最新的接口文档中的接口信息,从而保障了用户每次查看的接口文档都是最新版本,且每次更新接口文档都无需通知相关方。
在示例性的实施例中,所述第一平台设置有测试环境服务,所述方法还包括:
当接收到第三用户在所述第二平台的前端页面上针对所述接口信息发送的模拟测试请求时,生成测试请求报文;
调用所述第一平台的所述测试环境服务进行测试,以从所述测试环境服务获取测试响应信息;
将所述测试响应信息显示于所述第二平台的所述前端页面。
具体地,在将所述入参对象和所述出参对象的多个属性信息同步至所述第二平台后,所述第三用户可以对更新后的接口信息进行测试。例如,所述第三用户在所述开放平台查阅最新的接口信息后,在所述开放平台的前端页面上输入接口的入参请求信息以请求对所述接口信息进行模拟测试,所述计算机设备接收所述模拟测试请求,生成所述测试请求报文,并通过调用所述第一平台的测试环境服务对所述接口信息进行测试。当测试完成后,将测试响应信息显示于所述第二平台的前端页面。
在具体实施例中,当所述多个属性信息同步至所述第二平台之后,所述第二平台更新数据库,所述数据库中更新后的所有接口信息形成接口文档。当所述测试请求报文响应失败时,所述第三用户可以将所述测试请求的入参对象与所述接口文档中对应接口的入参对象进行比较,以确认所述测试请求的入参对象与所述接口文档中对应接口的入参对象的差异,从而实现人工校验接口入参对象的目的。
需要说明的是,本发明实施例可以采用现有的成熟的代码开发技术,实现代码层面的快速开发和部署,具体的代码开发技术在本发明实施例中不作具体介绍。
图3为本发明实施例提供的接口配置信息更新方法实施例一的一种示例性的具体流程示意图。请参阅图3:
首先在交易平台代码中,将需要展示的接口入参和出参的字段进行自定义注解,完成注释工作,并在开放平台手动录入需要展示的接口的信息;然后可以通过在交易平台系统的按钮操作,利用自定义注解和反射技术,生成对交易平台接口的入参和出参对象的属性信息;然后,交易平台将属性信息同步至开放平台;开放平台删除原有展示的接口信息,新增最新的接口信息并展示。
实施例二
请继续参阅图4,示出了本发明接口配置信息更新系统实施例二的程序模块示意图。在本实施例中,接口配置信息更新系统20可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明,并可实现上述接口配置信息更新方法。本发明实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述接口配置信息更新系统20在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能:
获取模块200,用于获取第一平台中针对接口的入参对象及出参对象添加的自定义注解以及在第二平台中第一用户录入的针对所述接口的接口信息。所述第一平台与所述第二平台用于接口信息的配置并进行通信。
具体地,所述自定义注解可以通过反射技术实现。
在实际应用中,所述第一平台可以为交易平台,通过在所述交易平台代码中添加自定义注解,以实现对接口属性的配置。所述第二平台可以为开放平台,所述开放平台可以用于基础接口的配置,例如添加接口信息、对已有接口信息进行修改、查看接口详情等。相关方可以在所述开放平台查阅最新的接口信息,并在所述开放平台上自定义模拟测试请求,调用交易平台的测试环境服务,并获取对应的响应信息。
需要说明的是,所述接口的接口名称、接口描述、接口地址、调用方式、出参类名是在所述第二平台提前配置的。例如:接口名称为保费试算、接口描述为保费试算、接口地址为/mcp/outChannel/calculatePremium.do?c=%s、调用方式为POST、出参类名为com.paic.ehis.mcp.process.premiumcalculate.message.standard.StandardCalcResponseDataInfo。所述接口信息可以根据需求自定义修改或增加。
当然,本领域技术人员很容易得知,所述第一平台与所述第二平台也可以安装于不同的计算机设备中。本发明实施例仅以所述第一平台和所述第二平台安装于同一计算机设备中为例,进行示例性的说明。
第一生成模块201,用于当接收到第二用户在所述第一平台触发的同步操作指令时,根据所述自定义注解生成所述入参对象及所述出参对象的多个属性信息。
在本实施例中,通过增加对接口的入参对象和出参对象的自定义注解,以完善接口的属性信息。例如,对入参对象StandardCalcRequestDataInfo添加自定义注解:
import…
public class StandardCalcRequestDataInfo implements Serializable,IProductStrategy,IRequestExectorParams{
@ParamProperty(chineseParamName=“生效日期”,allowableValue=“YYYY-MM-DD”,dataType=“varchar(11)”,required=true,notes=“YYYY-MM-DD,用于计算年龄,非指定生效日情况,默认为申请日期+1”,listNo=3)
@NotBlank(message=“生效日期字段缺失”)
@Pattern(regexp=DateUtils,DEFAULT_ONLY_DAREGEX,message=“生效日期格式错误”)
Private String effDate;
@ParamProperty(chineseParamName=“产品编码”,dataType=“varchar(32)”,required=true,notes=“”,listNo=1)
@NotBlank(message=“产品编码字段缺失”)
Private String productId;
当第二用户在交易平台触发同步按钮时,所述交易平台通过反射技术,一反编译的方式根据所述自定义注解生成所述入参对象StandardCalcRequestDataInfo的属性信息。从上可看出,所述入参对象StandardCalcRequestDataInfo上添加的自定义注解包括@ParamProperty,该注解支持配置对象属性的字段中文名称、注解描述、数据类型、默认值、允许的值、允许的枚举值的类型、是否必须、是否隐藏、展示排序顺序。例如,所述入参对象StandardCalcRequestDataInfo属性包括chineseParamName="生效日期",表示所述对象的effDate属性的中文名称是生效日期;allowableValue="YYYY-MM-DD",表示所述对象的effDate属性允许的值为YYYY-MM-DD;dataType="varchar(11)",表示所述对象的effDate属性的数据类型为varchar(11),varchar(11)表示11位长度的字符串类型;required=true,表示所述对象的effDate属性是必须的;notes="YYYY-MM-DD,用于计算年龄。非指定生效日情况,默认为申请日期+1",表示注释;listNo=3,表示所述对象的effDate属性显示在接口文档入参的第三个属性。
所述入参对象StandardCalcRequestDataInfo属性还包括chineseParamName="产品编码",表示所述对象的productId属性的中文名称是产品编码;dataType="varchar(32)",表示所述对象的productId属性的数据类型为varchar(32),varchar(32)表示32位长度的字符串类型;required=true,表示所述对象的productId属性是必须的;listNo=1,表示所述对象的productId属性显示在接口文档入参的第一个属性。
具体地,当所述第一平台的同步按钮被触发时,全局扫描添加的所述自定义注解@ParamProperty的入参对象,即能扫描到所述入参对象StandardCalcRequestDataInfo,通过反射技术,可以获取所述入参对象StandardCalcRequestDataInfo的effDate属性的信息,包括中文名称“生效日期”、允许的值“YYYY-MM-DD”,数据类型为varchar(11)等信息;同时获取所述入参对象StandardCalcRequestDataInfo的productId属性的信息,包括中文名称“产品编码”,数据类型为(32)等信息。
当然,在第二用户触发同步按钮时,所述交易平台通过反射技术,还生成出参对象的属性信息,在本发明实施例中仅以入参对象StandardCalcRequestDataInfo为例进行示例性的说明。
同步更新模块202,用于将所述多个属性信息从所述第一平台同步至所述第二平台,并根据所述多个属性信息对所述接口信息进行更新。
第二生成模块203,用于根据更新后的接口信息生成接口文档。
在一示例性的实施例中,所述第一平台与所述第二平台通过RocketMQ技术进行通信。所述RocketMQ是一款分布式消息中间件。在示例性的实施例中,结合上述例子,在所述第一生成模块201生成所述入参对象及所述出参对象的多个属性信息后,所述同步更新模块202可以将所有的入参对象及出参对象的各个属性信息组装成所述RocketMQ请求所述第二平台的通用对象InterfaceParamsDto。然后,所述第一平台通过所述RocketMQ将所述通用对象InterfaceParamsDto同步给所述第二平台,从而实现将所述入参对象及所述出参对象的多个属性信息同步至所述第二平台,并根据所述多个属性信息对所述接口信息进行更新,然后所述第二生成模块203根据更新后的接口信息生成接口文档。
当所述第二平台因为网络等原因,导致消费同步接口信息异常时,RocketMQ重复进行消息的推送,直至所述第二平台消费成功为止,避免了所述第一平台因网络等原因同步所述属性信息至所述第二平台失败,确保了所述第二平台获取所述接口信息的实时性和稳定性,并提高了所述第一平台同步所述接口信息至所述第二平台的成功率。
在示例性的实施例中,所述同步更新模块202可以具体包括组装单元及同步单元。
所述组装单元,用于根据所述多个属性信息进行目标对象的组装。
在具体实施例中,在进行目标对象的组装时,可以通过以下步骤进行实现:判断所述入参对象和/或所述出参对象是否为自引用;根据判断结果,采用对应的预设对象处理方法分别获取所述入参对象及所述出参对象的属性信息;将获取的所有入参对象和所述出参对象的属性信息进行组装,得到所述目标对象。
例如:在一示例性的具体实施例中,通过Integer size=checkCurrentClassIsSelfReference(clazz)方法判断所述对象是否为自引用类。所述对象包括入参对象和/或出参对象。遍历所述对象的所有属性,如果该属性为链表,则判断链表内的对象的类型和遍历原对象的类型名是否一致,如果一致,则为自引用,并记录自引用的层级,否则为非自引用。当所述对象为自引用类时,利用之前判断是否为自引用获取的层级关系和自定义注解来解析获取所述对象对应的属性信息。当所述对象为非自引用类时,也即所述对象为基本类时,则直接根据所述自定义注解来获取所述对象对应的属性信息。当获取到所述入参对象及所述出参对象的属性信息后,将所有的属性信息组装成统一的所述目标对象。
所述同步单元,用于将组装后的目标对象同步至所述第二平台,以将所述多个属性信息通过所述组装后的目标对象同步至所述第二平台。
在示例性的实施例中,通过采用RocketMQ将所述目标对象同步至所述第二平台。在将所述多个属性信息通过所述组装后的目标对象同步至所述第二平台的过程中,由于所述第一平台同步至所述第二平台的对象是统一的,在这个同步的对象中,会将所述出参对象和/或所述入参对象的多个属性信息和接口的关联序号ID组装在所述对象中,并将组装后的目标对象同步给所述第二平台,所述第二平台根据所述组装后的目标对象确定所述出参对象和/或所述入参对象的多个属性信息与接口之间的关联关系,从而确定所述出参对象和/或所述入参对象的多个属性信息对应接口的接口信息。因此,在同步过程中,所述第二平台获取到所述多个属性信息后,即可确定与所述多个属性信息对应的目标接口信息。
所述根据所述多个属性信息对所述接口信息进行更新,具体包括:根据确定的所述目标接口信息对接口信息进行更新。
本发明实施例通过自定义注解和反射技术,实现代码中接口的入参对象和出参对象属性的读取,实现自定义修改接口属性的配置。本发明实施例通过将最新的接口信息展示在第二平台的显示页面上,可以保证对外展示的接口文档是代码中关于接口入参和出参的注释是最新的,而代码中的入参和出参一旦发生变化,可以再次通过新增或修改代码中的自定义注解,实现对接口文档的更新,保证对外展示的文档和代码是一致的,同时在代码层面上,实现了快速的开发和部署以及敏捷开发迭代上线,极大地降低了人力开发成本。
在示例性的实施例中,所述方法还包括:
当所述第二平台接收到所述第一平台同步的所述多个属性信息时,根据所述多个属性信息对数据库中的接口信息进行更新。
具体地,在所述第二平台接收到所述第一平台同步的所述入参对象和所述出参对象的多个属性信息时,将与所述多个属性信息对应的目标接口信息与所述数据库中保存的多个原始接口信息一一进行比较;当所述数据库中存在与所述目标接口信息对应的原始接口信息时,删除所述与所述目标接口信息对应的原始接口信息,并将所述目标接口信息作为所述更新后的接口信息插入至所述数据库中;当所述数据库中不存在与所述目标接口信息对应的原始接口信息时,将所述目标接口信息作为所述更新后的接口信息插入至所述数据库中。示例性地,由于接口信息包括接口名称、接口描述、接口地址以及出参对象及入参对象的多个属性信息,当目标接口信息中的接口名称与所述数据库中保存的一个原始接口信息中的接口名称一致,则认为所述目标接口信息与该原始接口信息相对应,也即所述目标接口信息与该原始接口信息描述的是同一个接口,所述目标接口信息是对该原始接口信息的更新。
本实施例通过在接收到所述第一平台同步的多个属性信息时,及时更新数据库中的接口信息,当使用用户登录所述第二平台时,即可查看到所述更新后的接口信息,从而极大地提高了接口文档中接口信息更新的实时性。
在示例性的实施例中,所述方法还包括:
当接收到从所述第二平台查询所述接口的接口信息的操作时,从所述第二平台的后端获取所述目标接口信息,以使所述后端从所述数据库查询出所述目标接口信息;
将所述目标接口信息返回至所述第二平台的前端,以通过所述前端显示所述目标接口信息。
通过上述实施例,用户可以从第二平台随时查看最新的接口文档中的接口信息,从而保障了用户每次查看的接口文档都是最新版本,且每次更新接口文档都无需通知相关方。
在示例性的实施例中,所述第一平台设置有测试环境服务,所述方法还包括:
当接收到第三用户在所述第二平台的前端页面上针对所述接口信息发送的模拟测试请求时,生成测试请求报文;
调用所述第一平台的所述测试环境服务进行测试,以从所述测试环境服务获取测试响应信息;
将所述测试响应信息显示于所述第二平台的所述前端页面。
具体地,在将所述入参对象和所述出参对象的多个属性信息同步至所述第二平台后,所述第三用户可以对更新后的接口信息进行测试。例如,所述第三用户在所述开放平台查阅最新的接口信息后,在所述开放平台的前端页面上输入接口的入参请求信息以请求对所述接口信息进行模拟测试,所述计算机设备接收所述模拟测试请求,生成所述测试请求报文,并通过调用所述第一平台的测试环境服务对所述接口信息进行测试。当测试完成后,将测试响应信息显示于所述第二平台的前端页面。
在具体实施例中,当所述多个属性信息同步至所述第二平台之后,所述第二平台更新数据库,所述数据库中更新后的所有接口信息形成接口文档。当所述测试请求报文响应失败时,所述第三用户可以将所述测试请求的入参对象与所述接口文档中对应接口的入参对象进行比较,以确认所述测试请求的入参对象与所述接口文档中对应接口的入参对象的差异,从而实现人工校验接口入参对象的目的。
需要说明的是,本发明实施例可以采用现有的成熟的代码开发技术,实现代码层面的快速开发和部署,具体的代码开发技术在本发明实施例中不作具体介绍。
实施例三
参阅图5,是本发明实施例三之计算机设备的硬件架构示意图。本实施例中,所述计算机设备2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。该计算机设备2可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图所示,所述计算机设备2至少包括,但不限于,可通过系统总线相互通信连接存储器21、处理器22、网络接口23、以及接口配置信息更新系统20。其中:
本实施例中,存储器21至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备2的内部存储单元,例如该计算机设备2的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备2的外部存储设备,例如该计算机设备20上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器21还可以既包括计算机设备2的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备2的操作系统和各类应用软件,例如实施例二的接口配置信息更新系统20的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备2的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,例如运行接口配置信息更新系统10,以实现实施例一的接口配置信息更新方法。
所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述计算机设备2与其他电子装置之间建立通信连接。例如,所述网络接口23用于通过网络将所述计算机设备2与外部终端相连,在所述计算机设备2与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,GSM)、宽带码分多址(WidebandCode Division Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图5仅示出了具有部件20-23的计算机设备2,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器21中的所述接口配置信息更新系统20还可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器21中,并由一个或多个处理器(本实施例为处理器22)所执行,以完成本发明。
例如,图4示出了所述实现接口配置信息更新系统20实施例二的程序模块示意图,该实施例中,所述基于接口配置信息更新系统20可以被划分为获取模块200、第一生成模块201、同步更新模块202及第二生成模块203。其中,本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述接口配置信息更新系统20在所述计算机设备2中的执行过程。所述程序模块200-203的具体功能在实施例二中已有详细描述,在此不再赘述。
实施例四
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储接口配置信息更新系统20,被处理器执行时实现实施例一的接口配置信息更新方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种接口配置信息更新方法,应用于计算机设备中,其特征在于,所述计算机设备安装有第一平台和第二平台,所述第一平台与所述第二平台用于接口信息的配置并进行通信,所述方法包括:
获取第一平台中针对接口的入参对象及出参对象添加的自定义注解以及在第二平台中第一用户录入的针对所述接口的接口信息;
当接收到第二用户在所述第一平台触发的同步操作指令时,根据所述自定义注解生成所述入参对象及所述出参对象的多个属性信息;
将所述多个属性信息从所述第一平台同步至所述第二平台,并根据所述多个属性信息对所述接口信息进行更新;
根据更新后的接口信息生成接口文档。
2.根据权利要求1所述的接口配置信息更新方法,其特征在于,所述将所述多个属性信息从所述第一平台同步至所述第二平台,包括:
根据所述多个属性信息进行目标对象的组装;
将组装后的目标对象同步至所述第二平台,以将所述多个属性信息通过所述组装后的目标对象同步至所述第二平台。
3.根据权利要求2所述的接口配置信息更新方法,其特征在于,所述目标对象的组装方法包括:
判断所述入参对象和/或所述出参对象是否为自引用;
根据判断结果,采用对应的预设对象处理方法分别获取所述入参对象及所述出参对象的属性信息;
将获取的所有入参对象及所述出参对象的属性信息进行组装,得到所述目标对象。
4.根据权利要求1或2所述的接口配置信息更新方法,其特征在于,所述方法还包括:
当所述第二平台接收到所述第一平台同步的所述多个属性信息时,根据所述多个属性信息对数据库中的接口信息进行更新。
5.根据权利要求4所述的接口配置信息更新方法,其特征在于,所述根据所述多个属性信息对数据库中的接口信息进行更新,包括:
将与所述多个属性信息对应的目标接口信息与所述数据库中保存的多个原始接口信息一一进行比较;
当所述数据库中存在与所述目标接口信息对应的原始接口信息时,删除所述与所述目标接口信息对应的原始接口信息,并将所述目标接口信息作为所述更新后的接口信息插入至所述数据库中;
当所述数据库中不存在与所述目标接口信息对应的原始接口信息时,将所述目标接口信息作为所述更新后的接口信息插入至所述数据库中。
6.根据权利要求4或5所述的接口配置信息更新方法,其特征在于,所述方法还包括:
当接收到从所述第二平台查询所述接口的接口信息的操作指令时,从所述第二平台的后端获取所述目标接口信息,以使所述后端从所述数据库查询出所述目标接口信息;
将所述目标接口信息返回至所述第二平台的前端,以通过所述前端显示所述目标接口信息。
7.根据权利要求1所述的接口配置信息更新方法,其特征在于,所述第一平台设置有测试环境服务,所述方法还包括:
当接收到第三用户在所述第二平台的前端页面上针对所述接口信息发送的模拟测试请求时,生成测试请求报文;
调用所述第一平台的所述测试环境服务进行测试,以从所述测试环境服务获取测试响应信息;
将所述测试响应信息显示于所述第二平台的所述前端页面。
8.一种接口配置信息更新系统,应用于计算机设备中,其特征在于,所述计算机设备安装有第一平台和第二平台,所述第一平台与所述第二平台用于接口信息的配置并进行通信,包括:
获取模块,用于获取第一平台中针对接口的入参对象及出参对象添加的自定义注解以及在第二平台中第一用户录入的针对所述接口的接口信息;
第一生成模块,用于当接收到第二用户在所述第一平台触发的同步操作指令时,根据所述自定义注解生成所述入参对象及所述出参对象的多个属性信息;
同步更新模块,用于将所述多个属性信息从所述第一平台同步至所述第二平台,并根据所述多个属性信息对所述接口信息进行更新;
第二生成模块,用于根据更新后的接口信息生成接口文档。
9.一种计算机设备,所述计算机设备存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的接口配置信息更新方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如权利要求1至7中任一项所述的接口配置信息更新方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111356407.4A CN114035841A (zh) | 2021-11-16 | 2021-11-16 | 接口配置信息更新方法、系统、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111356407.4A CN114035841A (zh) | 2021-11-16 | 2021-11-16 | 接口配置信息更新方法、系统、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114035841A true CN114035841A (zh) | 2022-02-11 |
Family
ID=80144568
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111356407.4A Pending CN114035841A (zh) | 2021-11-16 | 2021-11-16 | 接口配置信息更新方法、系统、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114035841A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117056971A (zh) * | 2023-08-15 | 2023-11-14 | 北京房多多信息技术有限公司 | 数据存储方法、装置、电子设备及可读存储介质 |
-
2021
- 2021-11-16 CN CN202111356407.4A patent/CN114035841A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117056971A (zh) * | 2023-08-15 | 2023-11-14 | 北京房多多信息技术有限公司 | 数据存储方法、装置、电子设备及可读存储介质 |
CN117056971B (zh) * | 2023-08-15 | 2024-04-30 | 北京房多多信息技术有限公司 | 数据存储方法、装置、电子设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108427705B (zh) | 电子装置、分布式系统日志查询方法及存储介质 | |
US7349929B2 (en) | Accessing data based on user identity | |
KR101477763B1 (ko) | 원격 모듈용 메시지 목록 | |
US7426543B2 (en) | Accessing data stored in multiple locations | |
US7277921B2 (en) | Interprocess application programming interface for computer applications | |
JP4405812B2 (ja) | 第1データ記憶部と第2データ記憶部との間で同期を取るための方法および装置 | |
US20050070259A1 (en) | Method and system for accessing applications and data, and for tracking of key indicators on mobile handheld devices | |
US20090172005A1 (en) | Discovering and Updating Templates | |
CN105739968B (zh) | 基于分布式版本控制系统Git的更新内容的评审方法和装置 | |
EA007778B1 (ru) | Генератор прикладных программ | |
US7506069B2 (en) | Accessing data in a computer network | |
KR100500622B1 (ko) | 작업 관리 시스템 및 작업 관리 방법 | |
RU2524855C2 (ru) | Расширяемость для основывающейся на web визуализации диаграмм | |
CN110716743B (zh) | 一种适合多方协作开发的聚合api开发方法及系统 | |
US20150339286A1 (en) | Automatically generating certification documents | |
KR101754258B1 (ko) | 마크업 언어 기반 문서에 대한 동시 편집 정합성 검증 장치 및 방법 | |
CN114035841A (zh) | 接口配置信息更新方法、系统、计算机设备及存储介质 | |
CN112765102B (zh) | 一种文件系统管理方法和装置 | |
US20090150795A1 (en) | Object model and user interface for reusable map web part | |
US20030052912A1 (en) | Method and system for cell rendering and manipulation | |
CN112446194A (zh) | 信息处理装置和计算机可读介质 | |
CN111367500A (zh) | 数据的处理方法和装置 | |
WO2018040439A1 (zh) | 文档的处理方法及装置 | |
CN111736930B (zh) | 程序前后端接口调用方法、装置、计算机设备及存储介质 | |
US20110040852A1 (en) | Obtaining and providing cached settings within a development platform |
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 |