CN109542412A - 接口信息生成方法、装置、计算机设备和存储介质 - Google Patents
接口信息生成方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN109542412A CN109542412A CN201811204701.1A CN201811204701A CN109542412A CN 109542412 A CN109542412 A CN 109542412A CN 201811204701 A CN201811204701 A CN 201811204701A CN 109542412 A CN109542412 A CN 109542412A
- Authority
- CN
- China
- Prior art keywords
- interface
- code
- annotation information
- annotation
- 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
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000004573 interface analysis Methods 0.000 claims abstract description 35
- 230000008569 process Effects 0.000 claims abstract description 25
- 238000002224 dissection Methods 0.000 claims abstract description 11
- 230000008859 change Effects 0.000 claims description 38
- 238000012986 modification Methods 0.000 claims description 22
- 230000004048 modification Effects 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 17
- 238000006243 chemical reaction Methods 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims description 8
- 241000208340 Araliaceae Species 0.000 claims description 3
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 claims description 3
- 235000003140 Panax quinquefolius Nutrition 0.000 claims description 3
- 235000008434 ginseng Nutrition 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 2
- 230000015572 biosynthetic process Effects 0.000 abstract 1
- 238000012360 testing method Methods 0.000 description 27
- 238000013507 mapping Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 6
- 238000012423 maintenance Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009897 systematic effect Effects 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
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及一种基于自动程序设计技术的接口信息生成方法、装置、计算机设备和存储介质。所述方法包括:接收终端发送的接口分析请求;所述接口分析请求携带系统标识;从代码仓库中拉取与所述系统标识对应的业务系统的接口代码;所述接口代码中包含Java注释信息;对所述接口代码进行反射解析处理,得到JSON注释信息;将所述JSON注释信息发送至所述终端,以使所述终端解析所述JSON注释信息得到接口信息。采用本方法优化了接口信息生成过程,能够自动高效生成接口信息。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种接口信息生成方法、装置、计算机设备和存储介质。
背景技术
在软件项目开发中通常是前后端分离开发,需要由项目组中的前端工程师和后端工程师共同定义接口,编写接口文档,之后根据这个接口文档进行开发,到项目结束前都要一直维护该接口文档。传统方式中,通常只能通过项目组维护的接口文档了解某个接口信息,如果有接口信息管理的在线平台也只能通过人工方式在前端维护。当软件项目涉及的业务系统数量繁多时,人工编写接口信息的工作量巨大,导致无法及时维护接口信息。
发明内容
基于此,有必要针对上述技术问题,提供一种能够自动高效生成接口信息的接口信息生成方法、装置、计算机设备和存储介质。
一种接口信息生成方法,所述方法包括:接收终端发送的接口分析请求;所述接口分析请求携带系统标识;从代码仓库中拉取与所述系统标识对应的业务系统的接口代码;所述接口代码中包含Java注释信息;对所述接口代码进行反射解析处理,得到JSON注释信息;将所述JSON注释信息发送至所述终端,以使所述终端解析所述JSON注释信息得到接口信息。
在其中一个实施例中,所述对所述接口代码进行反射解析处理,得到JSON注释信息,包括:编译所述接口代码,得到多个待处理类文件;每个所述待处理类文件包含类注释信息;从所述多个待处理类文件中筛选出目标类文件;提取所述目标类文件包含的类注释信息中的多个参数对象;解析每个所述参数对象得到对应的属性信息;对解析得到的多个属性信息进行转换处理,得到JSON注释信息。
在其中一个实施例中,所述提取所述目标类文件包含的类注释信息中的多个参数对象,包括:检测所述目标类文件中包含的起始字符串和结束字符串;基于所述起始字符串对应的注释起始位置和所述结束字符串对应的注释结束位置,获取所述目标类文件包含的类注释信息;提取所获取的Java注释信息中的多个参数对象。
在其中一个实施例中,所述从所述多个待处理类文件中筛选出目标类文件,包括:检测每个待处理类文件包含的注释标识;所述注释标识包括类标识、类方法标识和参数标识中的至少一种;基于检测到的注释标识从多个待处理类文件中筛选出目标类文件;所述目标类文件包含与预设的目标标识匹配的注释标识。
在其中一个实施例中,所述方法还包括:检测所述代码仓库发生的代码变更操作;获取所述代码变更操作对应的变更后的接口代码;当存在与所述变更后的接口代码对应的变更前的接口代码时,基于所述变更后的接口代码和所述变更前的接口代码生成变更信息;将所述变更信息发送至所述终端,以使所述终端根据所述变更信息更新相应的接口信息。
在其中一个实施例中,所述方法还包括:接收终端发送的接口信息查询请求;所述查询请求携带系统标识;获取与所述系统标识对应的多个接口信息;每个所述接口信息中包含版本标识;将所述多个版本标识发送至所述终端,以使所述终端检测基于所述多个版本标识的选择操作,并根据所述选择操作生成接口信息展示请求;接收所述接口信息展示请求;所述接口信息展示请求携带选中的版本标识;将与所述选中的版本标识对应的接口信息发送至所述终端。
一种接口信息生成装置,所述装置包括:接收模块,用于接收终端发送的接口分析请求;所述接口分析请求携带系统标识;拉取模块,用于从代码仓库中拉取与所述系统标识对应的业务系统的接口代码;所述接口代码中包含Java注释信息;解析模块,用于对所述接口代码进行反射解析处理,得到JSON注释信息;生成模块,用于将所述JSON注释信息发送至所述终端,以使所述终端解析所述JSON注释信息得到接口信息。
在其中一个实施例中,所述解析模块还用于编译所述接口代码,得到多个待处理类文件;每个所述待处理类文件包含类注释信息;从所述多个待处理类文件中筛选出目标类文件;提取所述目标类文件包含的类注释信息中的多个参数对象;解析每个所述参数对象得到对应的属性信息;对解析得到的多个属性信息进行转换处理,得到JSON注释信息。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述各个实施例中所述的接口信息生成方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述各个实施例中所述的接口信息生成方法的步骤。
上述接口信息生成方法、装置、计算机设备和存储介质,服务器在接收到终端发送的接口分析请求之后,可基于接口分析请求携带的系统标识从代码仓库中拉取对应业务系统的接口代码,代码仓库中的接口代码预先加入了Java注释信息。服务器在对接口代码进行反射处理之后,可以根据Java注释信息生成JSON注释信息。服务器将JSON注释信息发送至终端之后,终端可解析JSON注释信息,生成并展示接口信息。通过在接口代码中添加Java注释,利用反射机制及时自动生成接口信息,无需人工介入手动编辑,提高了接口信息维护的效率,能够便于接口调用方进行接口的调用。
附图说明
图1为一个实施例中接口信息生成方法的应用场景图;
图2为一个实施例中接口信息生成方法的流程示意图;
图3为另一个实施例中接口信息生成方法的流程示意图;
图4为一个实施例中接口信息生成装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的接口信息生成方法,可以应用于如图1所示的应用环境中。其中,终端102与服务器104通过网络进行通信。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。服务器104在接收到终端102发送的接口分析请求之后,可基于接口分析请求携带的系统标识从代码仓库中拉取对应业务系统的接口代码,代码仓库中的接口代码预先加入了Java注释信息。服务器104在对接口代码进行反射处理之后,可以根据Java注释信息生成JSON注释信息。服务器104将JSON注释信息发送至终端102之后,终端102可解析JSON注释信息,生成并展示接口信息。
在一个实施例中,如图2所示,提供了一种接口信息生成方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:
步骤202,接收终端发送的接口分析请求;接口分析请求携带系统标识。
接口分析请求是指终端发送的用于对接口进行分析,生成相应接口信息的请求。由于服务器可对接多个业务系统,服务器可以分析多个业务系统的接口。系统标识是指用于区分业务系统的标识,每个业务系统都可对应一个全局唯一的系统标识。系统标识可以为由字母、数字、标点符号构成的字符串。比如说系统标识可以是系统编号、系统名称或系统名称缩写等。
在一个实施例中,终端可提供接口分析界面,该界面上可包括文本框、按钮等输入控件。用户可通过输入控件选择所需要分析的业务系统的接口。接口分析界面上还可包括确定控件,当终端检测到作用于确定控件的点击操作时,根据输入控件所接收的系统标识等信息生成接口分析请求,并将接口分析请求发送至服务器。当服务器接收到接口分析请求时,可触发生成分析任务,从而基于分析任务执行以下分析步骤以生成相应的接口信息。
步骤204,从代码仓库中拉取与系统标识对应的业务系统的接口代码;接口代码中包含Java注释信息。
代码仓库是指用于存储多个业务系统分别对应的接口代码的存储空间。可根据系统标识确定对应的业务系统,并从代码仓库中拉取所确定的业务系统的接口代码。每个接口代码中都预先加入了Java注释信息。接口代码可为由Java语言编写的正常程序代码,可用于编译成字节码,被JVM(Java Virtual Machine,Java虚拟机)执行。Java注释信息是指用于辅助描述接口代码的注释信息,包括但不限于接口主要功能、入参信息、回参信息等内容。Java注释信息可分布在接口代码中,分别对局部接口代码进行注释;Java注释信息也可以作为一个整体处于接口代码中,对全部接口代码进行注释。
在一个实施例中,接口分析请求还可包括版本标识。由于一个业务系统可对应多个版本的接口代码,因此在通过系统标识查找到相应业务系统的多个版本的接口代码之后,可根据版本标识从多个版本的接口代码中确定需要进行分析的接口代码。
在一个实施例中,服务器可接收多个业务系统的服务器上传的接口代码,并将所接收的接口代码标记上相应的系统标识。服务器可将接收的接口代码统一存储至预设的代码仓库,以便于后续拉取调用。
步骤206,对接口代码进行反射解析处理,得到JSON注释信息。
反射解析处理是指利用反射机制对接口代码进行解析的处理过程。反射机制指的是JAVA语言底层动态获取类对象信息的一种机制,对于任意一个类对象都能够知道这个类的所有属性和方法。可通过调用相应的API(Application Programming Interface,应用程序编程接口)实现对接口代码的反射处理。由于接口代码中包含Java注释信息,可对Java注释信息进行反射处理,对反射处理之后的Java注释信息进行解析,得到相应的JSON注释信息。JSON注释信息是指JSON(JavaScript Object Notation,是一种轻量级的数据交换格式)格式的注释信息。
步骤208,将JSON注释信息发送至终端,以使终端解析JSON注释信息得到接口信息。
终端在接收到JSON注释信息之后,可对JSON注释信息进行解析得到接口信息。终端可以表格形式展示该接口信息,接口调用方便能通过终端清晰地查看到接口信息,便于进行接口的调用。接口信息包括但不限于方法名、接口描述、请求参数映射表的包名及类名、返回参数映射表的包名及类名、系统标识、接口修改人、接口备注、调用频率、测试环境对应的URL(Uniform Resource Locator,统一资源定位符)、对外暴露标识、废弃标识等。
上述接口信息生成方法中,服务器在接收到终端发送的接口分析请求之后,可基于接口分析请求携带的系统标识从代码仓库中拉取对应业务系统的接口代码,代码仓库中的接口代码预先加入了Java注释信息。服务器在对接口代码进行反射处理之后,可以根据Java注释信息生成JSON注释信息。服务器将JSON注释信息发送至终端之后,终端可解析JSON注释信息,生成并展示接口信息。通过在接口代码中添加Java注释,利用反射机制及时自动生成接口信息,无需人工介入手动编辑,提高了接口信息维护的效率,能够便于接口调用方进行接口的调用。
在一个实施例中,对接口代码进行反射解析处理,得到JSON注释信息,包括:编译接口代码,得到多个待处理类文件;每个待处理类文件包含类注释信息;从多个待处理类文件中筛选出目标类文件;提取目标类文件包含的类注释信息中的多个参数对象;解析每个参数对象得到对应的属性信息;对解析得到的多个属性信息进行转换处理,得到JSON注释信息。
待处理类文件是指接口代码经过编译生成的class文件,每个待处理类文件会对应接口代码中调用的一个类。类注释信息是指class文件包含的注释信息。每个待处理类文件包含的类注释信息由接口代码中的部分Java注释信息生成。目标类文件为包含生成接口信息所必须的类注释信息的class文件。类注释信息可包含多种属性的参数对象,且每个参数对象有对应的属性信息。比如说,类注释信息中可包含入参对象和出参对象,属性信息包括但不限于字段中文名称、字段类型、是否必输、备注等信息。
服务器根据系统标识和/或版本标识从代码仓库拉取得到接口代码之后,可通过javac命令(一种编译命令)将接口代码编译成多个待处理类文件。获取所有的待处理类文件之后,可根据从所有的待处理类文件中筛选出所需要的目标类文件。通过筛选出的目标类文件,可解析得到任意一个目标类文件具有的成员变量和方法。成员变量包括参数对象,比如根据类方法上的注释信息中的参数对象@request和@response可以获取到接口的出入参对象,找到出入参对象之后,解析每个参数对象对应的属性信息。对解析得到的属性信息进行转换处理可得到JSON注释信息。可调用格式转换工具将解析得到的属性信息转换为JSON格式的JSON格式的JSON注释信息。
在一个实施例中,对解析得到的多个属性信息进行转换处理,得到JSON注释信息,包括:查找预设的字段映射表,基于字段映射表检测属性信息中包含的需要进行转换的待转换字段,并根据映射关系,查找待转换字段对应的转换后的目标字段。比如服务器解析得到属性对象@required对应的属性信息,该属性对象的属性信息值为true或者false,服务器可根据字段映射表将“true”和“false”分别转换成“是”和“否”,则终端显示的接口信息中展示的为“是”或“否”。通过映射表对多个属性信息进行转换处理,能够得到更加易于接口调用方理解的接口信息。
在一个实施例中,提取目标类文件包含的类注释信息中的多个参数对象,包括:检测目标类文件中包含的起始字符串和结束字符串;基于起始字符串对应的注释起始位置和结束字符串对应的注释结束位置,获取目标类文件包含的类注释信息;提取所获取的Java注释信息中的多个参数对象。
在接口代码中,可通过特定字符串包裹Java注释信息。比如通过“/**……*/”包裹Java注释信息,其中省略号的位置表示Java注释信息,则起始字符串为“/**”,结束字符串为“*/”。相应的,在目标类文件中,类注释信息也有特定的格式。可通过检测目标类文件中特定的起始字符串和结束字符串,来确定类注释信息在目标类文件中所处的注释位置,从而能够根据所确定的注释位置获取类注释信息。在类注释信息的具体内容中,通过标点符号“@”加上特定字段以拼接生成注释标识,注释标识可用于区分不同的参数对象。比如:@desc用于表示接口描述;@request用于表示请求参数映射表的包名及类名;@response用于表示返回参数映射表的包名及类名;@consumes用于表示消费方系统标识;@um用于表示接口修改人;@comment用于表示接口备注;@invokefrequency用于表示调用频率;@url用于表示测试环境对应的URL;@out_api用于表示该接口是否对外部暴露;@deprecated用于表示该接口是否废弃,如果废弃直接加上该标签就可以。
在一个实施例中,从多个待处理类文件中筛选出目标类文件,包括:检测每个待处理类文件包含的注释标识;注释标识包括类标识、类方法标识和参数标识中的至少一种;基于检测到的注释标识从多个待处理类文件中筛选出目标类文件;目标类文件包含与预设的目标标识匹配的注释标识。
可预先预设生成接口信息所需的信息对应的目标标识。当待处理类文件中包含预设的目标标识时,说明该待处理类文件为目标类文件。类标识包括但不限于类名。类方法标识包括但不限于方法名和请求路径信息。参数标识包括但不限于参数类型和参数来源。通过目标标识筛选出目标类文件,能够从所有类注释信息中提取出有效的信息,从而能够得到精简清晰的接口信息。
在一个实施例中,方法还包括:检测代码仓库发生的代码变更操作;获取代码变更操作对应的变更后的接口代码;当存在与变更后的接口代码对应的变更前的接口代码时,基于变更后的接口代码和变更前的接口代码生成变更信息;将变更信息发送至终端,以使终端根据变更信息更新相应的接口信息。
由于接口是持续维护的,有升级或变更的需要,因此可设置定时任务监控代码仓库中发生的代码变更操作。代码变更操作可以是接口代码修改操作或接口代码提交操作。比如说,接口修改人在接口代码中新增参数对象。当存在与变更后的接口代码对应的变更前的接口代码时,说明该代码变更操作为接口代码修改操作;可通过比较变更前的接口代码和变更后的接口代码,确定代码修改部分,基于代码修改部分生成变更信息。变更信息可以包括变更的具体的内容,还可以包括代码变更操作对应的系统标识、接口修改人标识、变更时间等相关信息。
当不存在与变更后的接口代码对应的变更前的接口代码时,说明该代码变更操作为接口代码提交操作,则可触发生成接口分析请求,基于接口分析请求建立接口分析任务,通过接口分析任务对新提交的接口代码进行全面的分析。
在一个实施例中,可基于变更信息生成提醒邮件,将提醒邮件发送至与相应系统标识相关联的邮箱账户。通过在接口变更之后及时通知到关联方,以保证变更后的借口代码的准确性。比如说,接口修改人在进行代码变更操作时若发生误操作,则误操作所导致的变更信息能及时发送至关联方进行核实,以及时对误操作进行修正。
在一个实施例中,方法还包括:接收终端发送的接口信息查询请求;查询请求携带系统标识;获取与系统标识对应的多个接口信息;每个接口信息中包含版本标识;将多个版本标识发送至终端,以使终端检测基于多个版本标识的选择操作,并根据选择操作生成接口信息展示请求;接收接口信息展示请求;接口信息展示请求携带选中的版本标识;将与选中的版本标识对应的接口信息发送至终端。
由于接口信息会基于接口代码的动态更新不断进行变更,可通过版本标识对变更前的接口代码和变更后的接口代码进行版本管理,每个版本的接口代码都可有对应版本的接口信息。终端在生成接口信息之后,可将接口信息发送至服务器进行存储。当终端接收到携带系统标识的接口信息查询请求时,可展示同一个业务系统各个版本的接口信息的列表,用户可选取列表中的任一版本的接口信息进行查询。服务器可基于接口信息展示请求携带的版本标识,获取所选取版本的更加具体的接口信息发送至终端进行展示,终端可以表格形式展示接口信息。通过提供不同版本的接口信息查询功能,可让前后端工程师追踪每个业务系统的接口代码的变化。
在一个实施例中,可集成自动化测试工具,支持对接不同测试环境进行接口测试。集成自动化测试工具之后,可通过测试工具对接不同测试环境进行真实测试,也可按顺序设置好一系列接口,执行批量测试。测试工具可以newman、postman、jmeter等。一般业务系统开发都配置有多套测试环境,代码开发环境dev,系统集成测试环境sit,用户验收测试uat等。将接口URL前缀改成对应测试环境的之后即可进行接口测试。比如若需要测试test接口,针对代码开发环境可设置接口URL为http://dev.com/test;针对系统集成测试环境可设置接口URL为http://sit.com/test。对多个接口进行批量测试时,首先可新建一个测试用例,测试用例包含多个接口;手工仅需触发一次,测试工具可按接口添加顺序自动执行测试用例中的多个接口。传统方式中,在修改接口代码之后,需要对接口代码进行回归测试,工作量较大。而通过集成自动化测试工具,能够方便在查看接口信息的同时,对接口进行测试,从而能高效地对接口信息的正确性进行验证。
在一个实施例中,如图3所示,提供了另一种接口信息生成方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:
步骤302,接收终端发送的接口分析请求;接口分析请求携带系统标识。
步骤304,从代码仓库中拉取与系统标识对应的业务系统的接口代码;接口代码中包含Java注释信息。
步骤306,编译接口代码,得到多个待处理类文件;每个待处理类文件包含类注释信息。
步骤308,检测每个待处理类文件包含的注释标识;注释标识包括类标识、类方法标识和参数标识中的至少一种。
步骤310,基于检测到的注释标识从多个待处理类文件中筛选出目标类文件;目标类文件包含与预设的目标标识匹配的注释标识。
步骤312,提取目标类文件包含的类注释信息中的多个参数对象。
步骤314,解析每个参数对象得到对应的属性信息。
步骤316,对解析得到的多个属性信息进行转换处理,得到JSON注释信息。
步骤318,将JSON注释信息发送至终端,以使终端解析JSON注释信息得到接口信息。
上述接口信息生成方法中,服务器在接收到终端发送的接口分析请求之后,可基于接口分析请求携带的系统标识从代码仓库中拉取对应业务系统的接口代码,代码仓库中的接口代码预先加入了Java注释信息。服务器在对接口代码进行反射处理之后,可以得到目标类文件,并可得到类注释信息。通过对类注释信息进行解析,可以生成JSON注释信息。服务器将JSON注释信息发送至终端之后,终端可解析JSON注释信息,生成并展示接口信息。通过在接口代码中添加Java注释,利用反射机制及时自动生成接口信息,无需人工介入手动编辑,提高了接口信息维护的效率,接口调用方能够实时浏览相关的接口信息,从而能够便于进行接口的调用。
应该理解的是,虽然图2和3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2和3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,提供了一种接口信息生成装置400,包括:接收模块402,用于接收终端发送的接口分析请求;接口分析请求携带系统标识;拉取模块404,用于从代码仓库中拉取与系统标识对应的业务系统的接口代码;接口代码中包含Java注释信息;解析模块406,用于对接口代码进行反射解析处理,得到JSON注释信息;生成模块408,用于将JSON注释信息发送至终端,以使终端解析JSON注释信息得到接口信息。
在一个实施例中,解析模块406还用于编译接口代码,得到多个待处理类文件;每个待处理类文件包含类注释信息;从多个待处理类文件中筛选出目标类文件;提取目标类文件包含的类注释信息中的多个参数对象;解析每个参数对象得到对应的属性信息;对解析得到的多个属性信息进行转换处理,得到JSON注释信息。
在一个实施例中,解析模块406还用于检测目标类文件中包含的起始字符串和结束字符串;基于起始字符串对应的注释起始位置和结束字符串对应的注释结束位置,获取目标类文件包含的类注释信息;提取所获取的Java注释信息中的多个参数对象。
在一个实施例中,解析模块406还用于检测每个待处理类文件包含的注释标识;注释标识包括类标识、类方法标识和参数标识中的至少一种;基于检测到的注释标识从多个待处理类文件中筛选出目标类文件;目标类文件包含与预设的目标标识匹配的注释标识。
在一个实施例中,该装置还包括变更模块,用于检测代码仓库发生的代码变更操作;获取代码变更操作对应的变更后的接口代码;当存在与变更后的接口代码对应的变更前的接口代码时,基于变更后的接口代码和变更前的接口代码生成变更信息;将变更信息发送至终端,以使终端根据变更信息更新相应的接口信息。
在一个实施例中,该装置还包括查询模块,用于接收终端发送的接口信息查询请求;查询请求携带系统标识;获取与系统标识对应的多个接口信息;每个接口信息中包含版本标识;将多个版本标识发送至终端,以使终端检测基于多个版本标识的选择操作,并根据选择操作生成接口信息展示请求;接收接口信息展示请求;接口信息展示请求携带选中的版本标识;将与选中的版本标识对应的接口信息发送至终端。
关于接口信息生成装置的具体限定可以参见上文中对于接口信息生成方法的限定,在此不再赘述。上述接口信息生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储接口代码等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种接口信息生成方法。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现上述各个实施例中的接口信息生成方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各个实施例中的接口信息生成方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种接口信息生成方法,所述方法包括:
接收终端发送的接口分析请求;所述接口分析请求携带系统标识;
从代码仓库中拉取与所述系统标识对应的业务系统的接口代码;所述接口代码中包含Java注释信息;
对所述接口代码进行反射解析处理,得到JSON注释信息;
将所述JSON注释信息发送至所述终端,以使所述终端解析所述JSON注释信息得到接口信息。
2.根据权利要求1所述的方法,其特征在于,所述对所述接口代码进行反射解析处理,得到JSON注释信息,包括:
编译所述接口代码,得到多个待处理类文件;每个所述待处理类文件包含类注释信息;
从所述多个待处理类文件中筛选出目标类文件;
提取所述目标类文件包含的类注释信息中的多个参数对象;
解析每个所述参数对象得到对应的属性信息;
对解析得到的多个属性信息进行转换处理,得到JSON注释信息。
3.根据权利要求2所述的方法,其特征在于,所述提取所述目标类文件包含的类注释信息中的多个参数对象,包括:
检测所述目标类文件中包含的起始字符串和结束字符串;
基于所述起始字符串对应的注释起始位置和所述结束字符串对应的注释结束位置,获取所述目标类文件包含的类注释信息;
提取所获取的Java注释信息中的多个参数对象。
4.根据权利要求2所述的方法,其特征在于,所述从所述多个待处理类文件中筛选出目标类文件,包括:
检测每个待处理类文件包含的注释标识;所述注释标识包括类标识、类方法标识和参数标识中的至少一种;
基于检测到的注释标识从多个待处理类文件中筛选出目标类文件;所述目标类文件包含与预设的目标标识匹配的注释标识。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
检测所述代码仓库发生的代码变更操作;
获取所述代码变更操作对应的变更后的接口代码;
当存在与所述变更后的接口代码对应的变更前的接口代码时,基于所述变更后的接口代码和所述变更前的接口代码生成变更信息;
将所述变更信息发送至所述终端,以使所述终端根据所述变更信息更新相应的接口信息。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收终端发送的接口信息查询请求;所述查询请求携带系统标识;
获取与所述系统标识对应的多个接口信息;每个所述接口信息中包含版本标识;
将所述多个版本标识发送至所述终端,以使所述终端检测基于所述多个版本标识的选择操作,并根据所述选择操作生成接口信息展示请求;
接收所述接口信息展示请求;所述接口信息展示请求携带选中的版本标识;
将与所述选中的版本标识对应的接口信息发送至所述终端。
7.一种接口信息生成装置,其特征在于,所述装置包括:
接收模块,用于接收终端发送的接口分析请求;所述接口分析请求携带系统标识;
拉取模块,用于从代码仓库中拉取与所述系统标识对应的业务系统的接口代码;所述接口代码中包含Java注释信息;
解析模块,用于对所述接口代码进行反射解析处理,得到JSON注释信息;
生成模块,用于将所述JSON注释信息发送至所述终端,以使所述终端解析所述JSON注释信息得到接口信息。
8.根据权利要求7所述的装置,其特征在于,所述解析模块还用于编译所述接口代码,得到多个待处理类文件;每个所述待处理类文件包含类注释信息;
从所述多个待处理类文件中筛选出目标类文件;
提取所述目标类文件包含的类注释信息中的多个参数对象;
解析每个所述参数对象得到对应的属性信息;
对解析得到的多个属性信息进行转换处理,得到JSON注释信息。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811204701.1A CN109542412A (zh) | 2018-10-16 | 2018-10-16 | 接口信息生成方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811204701.1A CN109542412A (zh) | 2018-10-16 | 2018-10-16 | 接口信息生成方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109542412A true CN109542412A (zh) | 2019-03-29 |
Family
ID=65844103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811204701.1A Pending CN109542412A (zh) | 2018-10-16 | 2018-10-16 | 接口信息生成方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109542412A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110162296A (zh) * | 2019-04-15 | 2019-08-23 | 平安科技(深圳)有限公司 | 应用程序编程接口文档的生成方法、装置及终端设备 |
CN110175043A (zh) * | 2019-06-18 | 2019-08-27 | 广州华多网络科技有限公司 | 协议接口代码版本更新通知的生成方法和装置 |
CN110321142A (zh) * | 2019-06-05 | 2019-10-11 | 平安科技(深圳)有限公司 | 一种接口文档更新方法、装置、电子设备及存储介质 |
CN111414194A (zh) * | 2020-03-19 | 2020-07-14 | 政采云有限公司 | 一种接口信息生成方法、系统、电子设备及存储介质 |
CN111796809A (zh) * | 2020-06-29 | 2020-10-20 | 平安普惠企业管理有限公司 | 接口文档生成方法、装置、电子设备及介质 |
CN112130837A (zh) * | 2020-09-25 | 2020-12-25 | 腾讯科技(深圳)有限公司 | 一种代码处理方法、装置及存储介质 |
CN112231686A (zh) * | 2020-10-20 | 2021-01-15 | 城云科技(中国)有限公司 | 一种基于安全认证标识的系统安全认证方法和装置 |
CN113656025A (zh) * | 2021-08-05 | 2021-11-16 | 北京趣拿软件科技有限公司 | Api的处理方法和装置 |
CN113760359A (zh) * | 2020-06-29 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 数据处理方法、装置、设备及计算机可读存储介质 |
CN113835692A (zh) * | 2021-09-27 | 2021-12-24 | 湖南快乐阳光互动娱乐传媒有限公司 | 字典的数据处理方法、装置、电子设备及计算机存储介质 |
CN113934450A (zh) * | 2020-07-13 | 2022-01-14 | 阿里巴巴集团控股有限公司 | 生成注释信息的方法、装置、计算机设备和介质 |
CN114025027A (zh) * | 2021-11-02 | 2022-02-08 | 浙江三维万易联科技有限公司 | 数据传输脚本的运行方法、装置、存储介质和电子装置 |
CN115629762A (zh) * | 2022-10-11 | 2023-01-20 | 北京远舢智能科技有限公司 | 一种json数据处理方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049271A (zh) * | 2012-12-27 | 2013-04-17 | 微梦创科网络科技(中国)有限公司 | 自动生成api接口的描述文档的方法和装置 |
CN103473045A (zh) * | 2013-08-27 | 2013-12-25 | 广州华多网络科技有限公司 | 一种生成接口文档的方法及装置 |
CN104536769A (zh) * | 2015-01-16 | 2015-04-22 | 浪潮电子信息产业股份有限公司 | 一种国际化文档实现方法 |
CN107239271A (zh) * | 2016-03-29 | 2017-10-10 | 滴滴(中国)科技有限公司 | 开发文档生成方法及装置 |
US20180081677A1 (en) * | 2016-09-16 | 2018-03-22 | Oracle International Corporation | Using Annotation Processors Defined By Modules with Annotation Processors Defined By Non-Module Code |
-
2018
- 2018-10-16 CN CN201811204701.1A patent/CN109542412A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049271A (zh) * | 2012-12-27 | 2013-04-17 | 微梦创科网络科技(中国)有限公司 | 自动生成api接口的描述文档的方法和装置 |
CN103473045A (zh) * | 2013-08-27 | 2013-12-25 | 广州华多网络科技有限公司 | 一种生成接口文档的方法及装置 |
CN104536769A (zh) * | 2015-01-16 | 2015-04-22 | 浪潮电子信息产业股份有限公司 | 一种国际化文档实现方法 |
CN107239271A (zh) * | 2016-03-29 | 2017-10-10 | 滴滴(中国)科技有限公司 | 开发文档生成方法及装置 |
US20180081677A1 (en) * | 2016-09-16 | 2018-03-22 | Oracle International Corporation | Using Annotation Processors Defined By Modules with Annotation Processors Defined By Non-Module Code |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110162296A (zh) * | 2019-04-15 | 2019-08-23 | 平安科技(深圳)有限公司 | 应用程序编程接口文档的生成方法、装置及终端设备 |
CN110321142A (zh) * | 2019-06-05 | 2019-10-11 | 平安科技(深圳)有限公司 | 一种接口文档更新方法、装置、电子设备及存储介质 |
CN110321142B (zh) * | 2019-06-05 | 2024-10-15 | 平安科技(深圳)有限公司 | 一种接口文档更新方法、装置、电子设备及存储介质 |
CN110175043A (zh) * | 2019-06-18 | 2019-08-27 | 广州华多网络科技有限公司 | 协议接口代码版本更新通知的生成方法和装置 |
CN111414194A (zh) * | 2020-03-19 | 2020-07-14 | 政采云有限公司 | 一种接口信息生成方法、系统、电子设备及存储介质 |
CN111414194B (zh) * | 2020-03-19 | 2023-08-11 | 政采云有限公司 | 一种接口信息生成方法、系统、电子设备及存储介质 |
WO2022002030A1 (zh) * | 2020-06-29 | 2022-01-06 | 北京沃东天骏信息技术有限公司 | 数据处理方法、装置、设备及计算机可读存储介质 |
CN113760359A (zh) * | 2020-06-29 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 数据处理方法、装置、设备及计算机可读存储介质 |
CN111796809A (zh) * | 2020-06-29 | 2020-10-20 | 平安普惠企业管理有限公司 | 接口文档生成方法、装置、电子设备及介质 |
CN113760359B (zh) * | 2020-06-29 | 2024-07-16 | 北京沃东天骏信息技术有限公司 | 数据处理方法、装置、设备及计算机可读存储介质 |
CN113934450A (zh) * | 2020-07-13 | 2022-01-14 | 阿里巴巴集团控股有限公司 | 生成注释信息的方法、装置、计算机设备和介质 |
CN112130837B (zh) * | 2020-09-25 | 2022-03-08 | 腾讯科技(深圳)有限公司 | 一种代码处理方法、装置及存储介质 |
CN112130837A (zh) * | 2020-09-25 | 2020-12-25 | 腾讯科技(深圳)有限公司 | 一种代码处理方法、装置及存储介质 |
CN112231686A (zh) * | 2020-10-20 | 2021-01-15 | 城云科技(中国)有限公司 | 一种基于安全认证标识的系统安全认证方法和装置 |
CN112231686B (zh) * | 2020-10-20 | 2024-02-27 | 城云科技(中国)有限公司 | 一种基于安全认证标识的系统安全认证方法和装置 |
CN113656025A (zh) * | 2021-08-05 | 2021-11-16 | 北京趣拿软件科技有限公司 | Api的处理方法和装置 |
CN113835692B (zh) * | 2021-09-27 | 2024-09-17 | 湖南快乐阳光互动娱乐传媒有限公司 | 字典的数据处理方法、装置、电子设备及计算机存储介质 |
CN113835692A (zh) * | 2021-09-27 | 2021-12-24 | 湖南快乐阳光互动娱乐传媒有限公司 | 字典的数据处理方法、装置、电子设备及计算机存储介质 |
CN114025027A (zh) * | 2021-11-02 | 2022-02-08 | 浙江三维万易联科技有限公司 | 数据传输脚本的运行方法、装置、存储介质和电子装置 |
CN114025027B (zh) * | 2021-11-02 | 2023-10-03 | 三维通信股份有限公司 | 数据传输脚本的运行方法、装置、存储介质和电子装置 |
CN115629762A (zh) * | 2022-10-11 | 2023-01-20 | 北京远舢智能科技有限公司 | 一种json数据处理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109542412A (zh) | 接口信息生成方法、装置、计算机设备和存储介质 | |
CN104657140B (zh) | 代码生成方法及装置 | |
CN102804147A (zh) | 执行abap源代码的代码检查的代码检查执行系统 | |
CN102317936A (zh) | 识别评论以连同文档一起示出 | |
CN112287013B (zh) | 数据转换方法及适配器 | |
CN111367595B (zh) | 数据处理方法、程序运行方法、装置及处理设备 | |
US8701086B2 (en) | Simplifying analysis of software code used in software systems | |
CN112905441A (zh) | 测试用例生成方法、测试方法、装置及设备 | |
CN113282498A (zh) | 测试用例的生成方法、装置、设备及存储介质 | |
CN116560683A (zh) | 软件更新方法、装置、设备及存储介质 | |
CN113126955A (zh) | 一种随机数据生成方法、装置、智能终端及存储介质 | |
US8433729B2 (en) | Method and system for automatically generating a communication interface | |
CN112395182A (zh) | 自动化测试方法、装置、设备及计算机可读存储介质 | |
CN110362478A (zh) | 应用升级测试方法、装置、计算机设备和存储介质 | |
JP2006065467A (ja) | データ抽出定義情報生成装置およびデータ抽出定義情報生成方法 | |
US11544179B2 (en) | Source traceability-based impact analysis | |
CN112783483B (zh) | 基于悬浮按钮组件的功能创建方法、装置、设备及介质 | |
US8484624B1 (en) | Test integration tool | |
CN107577476A (zh) | 一种基于模块划分的安卓系统源码差异性分析方法、服务器及介质 | |
AU2018313995B2 (en) | Systems and methods for providing globalization features in a service management application interface | |
CN108920182A (zh) | 一种新型源代码统计分析方法和系统 | |
CN114816425B (zh) | 将自动化语言程序转换为lua语言程序的方法和系统 | |
Farah et al. | Analysis of intercrossed open-source software repositories data in GitHub | |
US20080307395A1 (en) | Providing Registration of a Communication | |
US11960560B1 (en) | Methods for analyzing recurring accessibility issues with dynamic web site behavior and devices thereof |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190329 |
|
WD01 | Invention patent application deemed withdrawn after publication |