具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种接口文档的处理方法,本实施例以该方法应用于接口管理模块进行举例说明,接口管理模块也可以称为接口管理SDK(softwaredevelopment kit,软件开发工具),接口管理模块可以与服务端通信连接。可以理解的是,该方法也可以应用于终端或服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。在本实施例中,所述方法可以包括如下步骤:
步骤101,响应于服务端的接口特征校验请求,从所述接口特征校验请求中确定待校验接口的接口标识;
作为一示例,服务端可以是向其他对象提供预设功能的应用程序或模块,使用服务端提供的预设功能的应用程序或模块可以称为客户端。
接口可以是指实体把自己提供给外界的一种抽象化物,用以由内部操作分离出外部沟通方法,使其能被内部修改而不影响外界其他实体与其交互的方式,在计算机技术领域中,接口可以是服务端对外公开的功能调用方法(方式),客户端通过接口与服务端进行交互。在一个实施例中,接口可以是网络接口,即通过网络提供服务而对外公开的接口。
在具体实现中,接口可以具有对应的接口代码,以及描述接口规范和内容的接口文档,若要采用接口代码对应的接口向外界提供服务,需要对服务端代码进行代码构建操作和部署运行操作,其中,代码构建可以是对服务端代码进行编译、连接和代码打包等操作,生成可执行形式的服务端代码;部署运行可以是把构建后的代码安装到目标应用环境(如开发、测试或者生产环境)中,在执行部署运行操作后,服务端可以通过接口对外提供服务。当接口的接口文档与接口代码对应(即接口文档可以正确反映接口代码对应接口的接口参数信息),客户端开发人员可以根据预先存储于数据库的接口文档编写与服务端进行交互的代码,通过接口调用服务端的功能。
在实际应用中,接口文档可以由服务端代码的开发人员在接口代码编写完成后触发预设指令,由接口管理模块生成。然而,开发人员在更新(如新增或修改)接口代码后,若未触发预设指令并直接采用更新后的接口代码进行代码构建,将导致构建时实际运行的接口代码与存储在数据库中的接口文档不匹配,客户端开发人员无法根据正确的接口文档编写客户端代码。基于此,在进行代码构建或代码部署运行时,可以向接口管理模块发送一接口特征校验请求。
具体而言,在编写代码时,服务端代码的开发人员可以按照接口管理模块对应的接口管理规范,为每个接口预先设置一接口标识,该接口标识可以是具有唯一性的接口URL(Uniform Resource Locator,统一资源定位符)或接口ID(Identity document,身份标识号)。在对接口特征信息进行校验时,可以生成带有接口标识的接口特征校验请求,并发送至接口管理模块,响应于接收到的请求,接口管理模块可以从该请求中获取待校验接口的接口标识。
步骤102,获取所述接口标识对应的预设接口特征信息;其中,所述预设接口特征信息为初始接口文档对应的接口特征信息,所述初始接口文档根据所述服务端的初始接口代码生成;
作为一示例,接口可以具有对应的接口特征信息,接口特征信息也可以称为接口指纹,可以是根据接口文档中包含的信息生成的、反映接口参数的特征的信息。本实施例中提及的“初始”可以是相对于“当前”而言的,以初始接口代码和初始接口文档为例,初始接口代码可以是相对于当前接口代码而言,上一次更新的接口代码,初始接口文档可以是相对于当前接口文档而言,上一次更新的接口文档。
具体而言,接口文档可以是描述接口的规范和内容的文档,客户端按照接口文档所描述的规范和内容,通过接口与服务端进行交互,服务端按照接口文档中的规范和内容向客户端提供服务。接口文档中可以包括接口参数信息。具体的,接口参数信息可以包括以下任一项或多项:接口名称、接口标识、请求方式、请求参数信息及请求参数信息说明、返回参数信息及返回参数信息说明、授权信息。
接口特征信息可以是对多项接口参数信息的反映,通过接口特征信息可以反应接口的版本,当接口参数信息发生变化时,接口特征信息相应发生变化。其反映的接口参数信息可以是预设的接口参数信息(也称为关键参数信息),例如仅反映请求参数信息、返回参数信息和授权信息,当然,本领域技术人员可以根据需要指定预设的接口参数信息,本申请对此不作限制。
在具体实现中,开发人员在编写初始接口代码后,可以通过触发预设的指令,由接口管理模块根据初始接口代码生成初始接口文档,并获取初始接口文档对应的接口特征信息,即预设接口特征信息,并建立预设接口特征信息与接口标识的对应关系,将预设接口特征信息存储于数据库中。在接收到接口特征校验请求后,可以从数据库中获取接口标识对应的预设接口特征信息。
步骤103,确定所述服务端的当前接口代码,并获取所述当前接口代码对应的当前接口特征信息;其中,所述当前接口特征信息为当前接口代码文档对应的接口特征信息,所述当前接口代码文档根据所述当前接口代码生成;
在具体实现中,接口管理模块可以与服务端通信连接,对服务端代码进行扫描,确定服务端的当前接口代码。在获取当前接口代码后,可以根据当前接口代码生成当前接口文档,并从当前接口文档中获取当前接口代码对应的当前接口特征信息。
步骤104,当所述当前接口特征信息与所述预设接口特征信息不匹配时,对所述初始接口文档进行更新。
在获取当前接口特征信息和预设接口特征信息后,可以判断两者是否匹配,若当前接口特征信息与预设接口特征信息不匹配,可以确定预设接口特征信息对应的初始接口文档未能正确反映接口的参数信息,初始接口文档与当前接口代码不对应,可以对存储于数据库中的初始接口文档进行更新;若当前接口特征信息与预设接口特征信息匹配,确定预设接口特征信息对应的初始接口文档已正确反映接口的参数信息,可以进行代码构建或代码部署。
上述接口文档的处理方法中,通过获取接口标识对应的预设接口特征信息,预设接口特征信息可以是初始接口文档对应的接口特征信息,初始接口文档可以是根据服务端的初始接口代码生成,并在确定当前接口代码后,生成当前接口代码对应当前接口文档,获取当前接口代码文档对应的当前接口特征信息,实现了根据接口代码自动生成接口文档,避免采用人工方式对接口文档进行维护,能够提高接口文档的生成效率;并且,可以采用当前接口特征信息与预设接口特征信息进行匹配,当两者不匹配时,对初始接口文档进行更新,以保证服务端实际运行的接口代码与接口文档的一致性。
在一个实施例中,还可以包括如下步骤:
步骤201,接收服务端的接口文档生成指令,响应于所述接口文档生成指令,获取所述服务端的初始接口代码,并根据所述初始接口代码生成初始接口文档;
在实际应用中,在编写服务端代码后,服务端代码的开发人员可以触发接口文档生成指令的生成,并由服务端向接口管理模块发送该指令。在接收到接口文档生成指令后,接口管理模块响应于该指令,可以获取服务端的初始接口代码,并根据初始接口代码生成初始接口文档。
在一个实施例中,可以通过在命令行(如windows系统的cmd)中输入接口管理SDK的命令,如maven(项目对象模型)命令,触发生成接口文档生成指令;或者,可以在代码开发工具中点击预设按钮,进而触发接口文档生成指令的生成,如点击集成开发环境(IDE,Integrated Development Environment)中的按钮,当采用java语言进行代码开发时,集成开发环境可以是java编程语言开发的集成环境(即IDEA,IntelliJ IDEA)。
步骤202,根据所述初始接口文档中包含的信息,得到预设接口特征信息,并将所述预设接口特征信息存储于数据库中。
在获取初始接口文档后,接口管理模块可以根据初始接口文档中包含的信息,得到与初始接口文档对应的预设接口特征信息,并将该信息存储于数据库中。
在本实施例中,当开发人员编写服务端代码后,通过触发预设的指令,即可以根据初始接口代码生成初始接口文档,并获取初始接口文档对应的预设接口特征信息,实现了初始接口文档的自动生成,避免采用人工方式生成接口文档,即使接口代码发生多次变化,也可以快速生成初始接口文档,在提高了接口文档生成效率的同时,降低维护成本。
在一个实施例中,如图2所示,所述获取所述服务端的初始接口代码,并根据所述初始接口代码生成初始接口文档,可以包括如下步骤:
步骤301,获取所述服务端对应的服务端代码;所述服务端代码中包括用于描述代码类型的代码注解信息;
作为一示例,代码注解信息可以用于描述服务端代码的代码类型。
在实际应用中,服务端代码的开发人员编写的代码可以包括多种类型,例如接口类型和非接口类型,在编写代码时,开发人员可以为代码添加代码注解信息。当接口管理模块与服务端通信,可以获取服务端对应的服务端代码,以及服务端代码中的代码注解信息。
具体而言,接口管理模块可以包括注解处理器,该注解处理器可以具有对应的代码注解信息,接口管理模块在获取代码注解信息后,可以通过注解处理器对代码注解信息进行解析。基于此,开发人员在添加代码注解信息时,可以使用与注解处理器对应代码注解信息,并结合该代码注解信息对应的使用方法为服务端中的代码元素添加注解,如为接口的类、方法以及参数添加注解。
步骤302,读取所述代码注解信息,并采用所述代码注解信息,确定所述服务端代码中代码类型为接口类型的初始接口代码;
在获取包含代码注解信息的服务端代码后,可以读取代码注解信息,通过代码注解信息确定服务端代码中各组代码的代码类型,并将代码类型为接口类型的服务端代码确定为初始接口代码。
步骤303,基于反射机制,生成所述初始接口代码对应的初始接口文档。
在确定初始接口代码后,可以结合反射机制,生成初始接口代码对应的初始接口文档。
在一个实施例中,当采用java语言进行代码开发时,反射机制可以是java反射机制,基于Java机制生成的初始接口文档,其内容的格式可以是按照JSON schema(JSON元数据规范)生成的JSON字符串。
其中,Java的反射机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法,这种动态获取程序信息以及动态调用对象的功能称为Java的反射机制。
在本实施例中,通过读取服务端代码中的代码注解信息,可以自动确认服务端代码中的初始接口代码,并通过反射机制自动生成初始接口代码对应的初始接口文档,使得在初始接口文档的生成过程中,无需通过人工对初始接口代码进行处理,极大地解放了人力,提高了接口文档的维护效率。
在一个实施例中,所述确定所述服务端的当前接口代码,可以包括如下步骤:
获取所述服务端的当前代码,所述当前代码中包括用于描述代码类型的代码注解信息;读取所述代码注解信息,并采用所述代码注解信息,确定当前代码中代码类型为接口类型的当前接口代码。
作为一示例,服务端的当前代码可以是在代码构建操作或部署运行操作中所使用的代码。
在具体实现中,存在接口代码已更新而存储于数据库中的初始接口文档未更新的情况,这将导致代码构建或部署运行时,实际运行的接口代码与存储在数据库中的接口文档不匹配。基于此,与服务端通信的接口管理模块可以获取服务端的当前代码,当前代码中可以包括描述代码类型的代码注解信息。在读取代码注解信息后,接口管理模块可以采用代码注解信息,确定当前代码中代码类型为接口类型的当前接口代码。当前接口代码的具体确定过程可以参考预设接口代码的确定过程,本实施例中不再赘述。
在一个实施例中,所述获取所述当前接口代码对应的当前接口特征信息,包括:
基于反射机制,生成所述当前接口代码对应的当前接口文档;根据所述当前接口文档中包含的信息,获取所述当前接口文档对应的当前接口特征信息。
在具体实现中,在确定当前接口代码后,可以基于反射机制,生成当前接口代码对应的当前接口文档,在生成当前接口文档后,可以结合当前接口文档中包含的信息,获取当前接口文档对应的当前接口特征信息。
在本实施例中,通过反射机制可以自动生成当前接口代码对应的当前接口文档,并获取当前接口特征信息,在校验过程中,能够避免通过人工方式对生成当前接口文档,极大地解放了人力,提高了接口文档的校验效率。
在一个实施例中,如图3所示,所述根据所述当前接口文档中包含的信息,获取所述当前接口文档对应的当前接口特征信息,可以包括如下步骤:
步骤401,从所述当前接口文档中获取请求参数信息、返回参数信息以及授权信息;
作为一示例,请求参数信息可以是从不同维度描述接口请求参数对应特征的信息,客户端按照请求参数信息描述的特征,生成符合预设格式的请求参数,以请求调用服务端的功能。
返回参数信息可以是从不同维度描述接口返回参数对应特征的信息,服务端按照请求参数信息描述的特征,生成符合预设格式的返回参数,以响应客户端的请求。
授权信息可以表征参数信息是否需要授权校验,其中,可以采用“0”表征不需要授权校验,采用“1”表征需要授权校验。
在获取当前接口文档后,可以从当前接口文档中获取请求参数信息、返回参数信息和授权信息。
步骤402,确定所述请求参数信息对应的第一参数特征信息和所述返回参数信息对应的第二参数特征信息;
作为一示例,参数特征信息也可以称为参数的指纹,是综合反映参数各个维度特征的信息,当参数的特征发生变化时,参数特征信息也可以相应发生变化。
在获取请求参数信息和返回参数信息后,可以确定请求参数信息对应的第一参数特征信息,以及返回参数信息对应的第二参数特征信息。
步骤403,根据所述第一参数特征信息、所述第二参数特征信息以及所述授权信息,确定当前接口特征信息。
在确定第一参数特征信息和第二参数特征信息后,可以结合第一参数特征信息、第二参数特征信息和授权信息,确定当前接口特征信息。
在本实施例中,通过从当前接口文档中获取请求参数信息、返回参数信息以及授权信息,并根据获取请求参数信息、返回参数信息以及授权信息生成当前接口特征信息,实现了接口特征信息的自动生成,并且,接口特征信息可以综合反映不同的参数特征。
在一个实施例中,所述请求参数信息包括多个请求字段,所述确定所述请求参数信息对应的第一参数特征信息,可以包括如下步骤:
步骤501,针对每个请求字段,确定请求字段对应的请求字段类型信息、请求字段标识以及请求字段重要性级别信息;采用所述请求字段类型信息、请求字段标识,以及请求字段重要性级别信息,生成第一字符串,并确定所述第一字符串对应的字符串特征信息;
作为一示例,字符串特征信息可以与字符串具有一一对应的关系,当字符串发生变化时,字符串特征信息相应发生变化。
在实际应用中,请求参数信息的参数特征可以包括请求字段,以及与请求字段对应的请求字段类型信息、请求字段标识和请求字段重要性级别,请求参数信息中可以包括多个请求字段。
其中,请求字段类型信息可以描述请求字段对应数据的数据类型;请求字段标识可以区分不同的字段,可以是字段名称;请求字段重要性级别信息用于表征请求字段在请求参数信息中是否必须,在实际应用中,可以采用“0”表示否,采用“1”表示是。
在获取请求参数信息后,针对每个请求字段,可以确定请求字段对应的请求字段类型信息、请求字段标识以及请求字段重要性级别信息,并采用请求字段类型信息、请求字段标识和请求字段重要性级别信息,生成第一字符串,具体而言,可以采用字符串的形式,对请求字段类型信息、请求字段标识和请求字段重要性级别信息进行拼接,生成第一字符串。
在生成第一字符串后,可以确定第一字符串对应的字符串特征信息。具体而言,可以计算第一字符串对应的MD5值,即MD5(请求字段类型信息+请求字段标识+请求字段重要性级别信息),并将该MD5值确定为第一字符串对应的字符串特征信息。
步骤502,采用多个第一字符串对应的字符串特征信息生成第二字符串,并确定所述第二字符串对应的字符串特征信息为第一参数特征信息。
在确定每个第一字符串对应的字符串特征信息后,可以对多个第一字符串对应的字符串特征信息进行拼接,生成第二字符串,并确定第二字符串对应的字符串特征信息为第一参数特征信息。在进行拼接时,可以获取每个第一字符串对应的字符串特征信息的首字母,按照字母顺序对多个字符串特征进行排序后拼接,生成第二字符串。
在生成第二字符串后,可以确定第二字符串对应的字符串特征信息。具体而言,可以计算第二字符串对应的MD5值,即MD5(第一字符串1对应的字符串特征信息+第一字符串2对应的字符串特征信息+...第一字符串N对应的字符串特征信息),并将该MD5值确定为第二字符串对应的字符串特征信息,即第一参数特征信息。
返回参数信息可以包括多个返回字段,所述确定所述返回参数信息对应的第二参数特征信息,可以包括如下步骤:
步骤601,针对每个返回字段,确定返回字段对应的返回字段类型信息、返回字段标识以及返回字段重要性级别信息;采用所述返回字段类型信息、返回字段标识以及返回字段重要性级别信息,生成第三字符串,并确定所述第三字符串对应的字符串特征信息;
在实际应用中,返回参数信息的参数特征可以包括返回字段,以及与返回字段对应的返回字段类型信息、返回字段标识和返回字段重要性级别,返回参数信息中可以包括多个返回字段。
其中,返回字段类型信息可以描述返回字段对应数据的数据类型;返回字段标识可以区分不同的字段,可以是字段名称;返回字段重要性级别信息用于表征返回字段在返回参数信息中是否必须,在实际应用中,可以采用“0”表示否,采用“1”表示是。
在获取返回参数信息后,针对每个返回字段,可以确定返回字段对应的返回字段类型信息、返回字段标识以及返回字段重要性级别信息,并采用返回字段类型信息、返回字段标识和返回字段重要性级别信息,生成第三字符串,具体而言,可以采用字符串的形式,对返回字段类型信息、返回字段标识和返回字段重要性级别信息进行拼接,生成第三字符串。
在生成第三字符串后,可以确定第三字符串对应的字符串特征信息。具体而言,可以计算第三字符串对应的MD5值,即MD5(返回字段类型信息+返回字段标识+返回字段重要性级别信息),并将该MD5值确定为第三字符串对应的字符串特征信息。
步骤602,采用多个第三字符串对应的字符串特征信息生成第四字符串,并确定所述第四字符串对应的字符串特征信息为第二参数特征信息。
在确定每个第三字符串对应的字符串特征信息后,可以对多个第三字符串对应的字符串特征信息进行拼接,生成第四字符串,并确定第四字符串对应的字符串特征信息为第二参数特征信息。在进行拼接时,可以获取每个第三字符串对应的字符串特征信息的首字母,按照字母顺序对多个字符串特征进行排序后拼接,生成第四字符串。
在生成第四字符串后,可以确定第四字符串对应的字符串特征信息。具体而言,可以计算第四字符串对应的MD5值,即MD5(第三字符串1对应的字符串特征信息+第三字符串2对应的字符串特征信息+...第三字符串N对应的字符串特征信息),并将该MD5值确定为第四字符串对应的字符串特征信息,即第二参数特征信息。
在一个实施例中,所述根据所述第一参数特征信息、所述第二参数特征信息以及所述授权信息,确定当前接口特征信息,可以包括如下步骤:
采用所述第一参数特征信息、所述第二参数特征信息以及所述授权信息,生成第五字符串,并确定所述第五字符串对应的字符串特征信息为当前接口特征信息。
在确定第一参数特征信息和第二参数特征信息后,可以进一步结合授权信息,采用第一参数特征信息、第二参数特征信息和授权信息进行拼接,生成第五字符串,并确定第五字符串对应的字符串特征信息为当前接口特征信息,当前接口特征信息也可以称为当前接口的版本。具体而言,在确定第五字符串对应的字符串特征信息时,可以计算第五字符串的MD5值,即MD5(第一参数特征信息+第二参数特征信息+授权信息),并确定该MD5值为当前接口特征信息。
在本实施例中,通过对当前接口文档参数信息中的字段类型信息、字段标识以及字段重要性级别信息进行拼接,生成字符串,并采用字符串的字符串特征信息作为当前接口特征信息,能够在接口的字段个数、字段类型、字段标识以及字段重要性级别中任一信息发生变化时,当前接口特征信息也相应发生变化,使得当前接口特征信息可以及时反映接口参数特征的变化情况。
在一个实施例中,所述根据所述初始接口文档中包含的信息,得到预设接口特征信息,可以包括如下步骤:
从所述初始接口文档中获取请求参数信息、返回参数信息以及授权信息;确定所述请求参数信息对应的第三参数特征信息和所述返回参数信息对应的第四参数特征信息;根据所述第三参数特征信息、所述第四参数特征信息以及所述授权信息,确定预设接口特征信息。
在实际应用中,接口管理模块可以从初始接口文档中获取与初始接口文档对应的请求参数信息、返回参数信息和授权信息,并根据请求参数信息、返回参数信息和授权信息生成预设接口特征信息,并根据请求参数信息、返回参数信息和授权信息生成预设接口特征信息。
在一个实施例中,初始文档的请求参数信息可以包括多个请求字段,所述确定所述请求参数信息对应的第三参数特征信息,可以包括如下步骤:针对每个请求字段,确定请求字段对应的请求字段类型信息、请求字段标识以及请求字段重要性级别信息;采用所述请求字段类型信息、请求字段标识,以及请求字段重要性级别信息,生成第六字符串,并确定所述第六字符串对应的字符串特征信息;采用多个第六字符串对应的字符串特征信息生成第七字符串,并确定所述第七字符串对应的字符串特征信息为第三参数特征信息
第三参数特征信息的具体确定过程可以参考第一参数特征信息的确定过程,在此不再赘述。
在一个实施例中,初始文档的返回参数信息可以包括多个返回字段,所述确定所述返回参数信息对应的第四参数特征信息,包括:
针对每个返回字段,确定返回字段对应的返回字段类型信息、返回字段标识以及返回字段重要性级别信息;采用所述返回字段类型信息、返回字段标识以及返回字段重要性级别信息,生成第八字符串,并确定所述第八字符串对应的字符串特征信息;
采用多个第八字符串对应的字符串特征信息生成第九字符串,并确定所述第九字符串对应的字符串特征信息为第四参数特征信息。
第四参数特征信息的具体确定过程可以参考第二参数特征信息的确定过程,在此不再赘述。
在一个实施例中,所述根据请求参数信息、返回参数信息和授权信息生成预设接口特征信息,可以包括如下步骤:
采用所述第三参数特征信息、所述第四参数特征信息以及所述授权信息,生成第十字符串,并确定所述第十字符串对应的字符串特征信息为预设接口特征信息。
预设接口特征信息的具体确定过程可以参考当前接口特征信息的确定过程,在此不再赘述。
在本实施例中,通过对预设接口文档参数信息中的字段类型信息、字段标识以及字段重要性级别信息进行拼接,生成字符串,并采用字符串的字符串特征信息作为当前接口特征信息,能够令预设接口特征信息综合反映各个接口参数特征。
在一个实施例中,所述方法还可以包括如下步骤:
判断所述预设接口特征信息是否具有对应的审核信息;若是,执行所述当所述当前接口特征信息与所述预设接口特征信息不匹配时,对所述初始接口文档进行更新的步骤;若否,针对所述预设接口特征信息生成审核提示信息。
在实际应用中,为了判断接口是否可以提供满足业务需求的功能,以及确定接口的信息传输安全性,例如是否会泄露用户信息,在将预设接口文档和预设接口特征信息保存与数据库之前,可以由相关负责人对接口管理模块生成的预设接口文档进行审核,在审核后,可以针对预设接口文档和预设接口特征信息生成审核信息。例如,已审核的接口可以采用审核信息“1”标识,未审核的接口可以采用初始默认的“0”标识。
在对接口特征进行校验的过程中,可以判断预设接口特征信息是否具有对应的审核信息,若是,则可以进一步判断当前接口特征信息与预设接口特征信息是否匹配;若否,则可以针对预设接口特征信息生成审核提示信息,提醒相关负责人先对预设接口文档和预设接口特征信息审核,在审核通过后再进行匹配。
当接口的当前接口特征信息与预设接口特征信息,并且预设接口特征信息已通过审核时,可以对服务端代码进行部署,对外提供服务。客户端代码的开发人员可以根据存储于数据库中的、及时更新的初始接口文档,编写与服务端进行交互的代码,当客户端发起接口调用请求后,服务端可以根据接口文档的返回参数信息返回响应信息。
在本实施例中,通过判断预设接口特征信息是否具有对应的审核信息,可以保证接口的设计满足业务需求和信息安全需求。
为了使本领域技术人员能够更好地理解上述步骤,以下通过一个例子对本申请实施例加以示例性说明,但应当理解的是,本申请并不限于此。
如图4所示,服务端(即服务提供方)可以与接口管理SDK通信,接口管理SDK可以与接口管理系统通信,其中,接口管理系统可以对接口文档、代码构建和接口调用的过程进行管理。
步骤701,服务端可以触发预设命令,令接口管理SDK对服务端代码进行扫描,生成初始接口文档和预设接口特征信息,并由接口管理SDK将初始接口文档和预设接口特征信息发送至接口管理系统。
步骤702,在接收到初始接口文档和预设接口特征信息后,接口管理系统可以将其存储于预设的数据库,相关负责人员可以对初始接口文档和预设接口特征信息进行审核。
步骤703,在服务端代码构建时,接口管理SDK可以获取用于代码构建的当前接口代码,并确定当前接口代码对应的当前接口特征信息,进而判断当前接口特征信息与预设接口特征信息是否一致,以及预设接口特征信息是否已审核,若两者一致,且预设接口特征信息已审核,则可以继续进行代码构建,并进行代码部署;否则,在两者不一致,或则预设接口特征信息未审核时,服务端代码不能进行构建和部署。
步骤704,当服务端代码成功部署后,客户端(服务使用者)可以通过接口调用服务端的相关功能。
应该理解的是,虽然图1-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-4中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种接口文档的处理装置,所述装置包括:
接口标识确定模块801,用于响应于服务端的接口特征校验请求,从所述接口特征校验请求中确定待校验接口的接口标识;
预设接口特征信息获取模块802,用于获取所述接口标识对应的预设接口特征信息;其中,所述预设接口特征信息为初始接口文档对应的接口特征信息,所述初始接口文档根据所述服务端的初始接口代码生成;
当前接口代码确定模块803,用于确定所述服务端的当前接口代码,并获取所述当前接口代码对应的当前接口特征信息;其中,所述当前接口特征信息为当前接口代码文档对应的接口特征信息,所述当前接口代码文档根据所述当前接口代码生成;
文档更新模块804,用于当所述当前接口特征信息与所述预设接口特征信息不匹配时,对所述初始接口文档进行更新。
在一个实施例中,所述当前接口代码确定模块803,包括:
当前接口文档生成子模块,用于基于反射机制,生成所述当前接口代码对应的当前接口文档;
当前接口特征信息获取子模块,用于根据所述当前接口文档中包含的信息,获取所述当前接口文档对应的当前接口特征信息。
在一个实施例中,所述当前接口特征信息获取子模块,包括:
参数获取单元,用于从所述当前接口文档中获取请求参数信息、返回参数信息以及授权信息;
参数特征确定单元,用于确定所述请求参数信息对应的第一参数特征信息和所述返回参数信息对应的第二参数特征信息;
当前接口特征信息生成单元,用于根据所述第一参数特征信息、所述第二参数特征信息以及所述授权信息,确定当前接口特征信息。
在一个实施例中,所述请求参数信息包括多个请求字段,所述参数特征确定单元,包括:
第一字符串生成子单元,用于针对每个请求字段,确定请求字段对应的请求字段类型信息、请求字段标识以及请求字段重要性级别信息;采用所述请求字段类型信息、请求字段标识,以及请求字段重要性级别信息,生成第一字符串,并确定所述第一字符串对应的字符串特征信息;
第一参数特征信息确定子单元,用于采用多个第一字符串对应的字符串特征信息生成第二字符串,并确定所述第二字符串对应的字符串特征信息为第一参数特征信息;
所述返回参数信息包括多个返回字段,所述参数特征确定单元,包括:
第三字符串生成子单元,用于针对每个返回字段,确定返回字段对应的返回字段类型信息、返回字段标识以及返回字段重要性级别信息;采用所述返回字段类型信息、返回字段标识以及返回字段重要性级别信息,生成第三字符串,并确定所述第三字符串对应的字符串特征信息;
第二参数特征信息确定子单元,用于采用多个第三字符串对应的字符串特征信息生成第四字符串,并确定所述第四字符串对应的字符串特征信息为第二参数特征信息。
在一个实施例中,还包括:
生成指令接收模块,用于接收服务端的接口文档生成指令,响应于所述接口文档生成指令,获取所述服务端的初始接口代码,并根据所述初始接口代码生成初始接口文档;
预设接口特征信息获取模块,用于根据所述初始接口文档中包含的信息,得到预设接口特征信息,并将所述预设接口特征信息存储于数据库中。
在一个实施例中,所述生成指令接收模块,包括:
服务端代码获取子模块,用于获取所述服务端对应的服务端代码;所述服务端代码中包括用于描述代码类型的代码注解信息;
注解信息读取子模块,用于读取所述代码注解信息,并采用所述代码注解信息,确定所述服务端代码中代码类型为接口类型的初始接口代码;
初始接口文档生成子模块,用于基于反射机制,生成所述初始接口代码对应的初始接口文档。
在一个实施例中,还包括:
判断模块,用于判断所述预设接口特征信息是否具有对应的审核信息;若是,调用所述文档更新模块804;若否,调用提示信息生成模块;
提示信息生成模块,用于针对所述预设接口特征信息生成审核提示信息。
关于接口文档的处理装置的具体限定可以参见上文中对于接口文档的处理方法的限定,在此不再赘述。上述于接口文档的处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储处理接口文档的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种接口文档的处理方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
响应于服务端的接口特征校验请求,从所述接口特征校验请求中确定待校验接口的接口标识;
获取所述接口标识对应的预设接口特征信息;其中,所述预设接口特征信息为初始接口文档对应的接口特征信息,所述初始接口文档根据所述服务端的初始接口代码生成;
确定所述服务端的当前接口代码,并获取所述当前接口代码对应的当前接口特征信息;其中,所述当前接口特征信息为当前接口代码文档对应的接口特征信息,所述当前接口代码文档根据所述当前接口代码生成;
当所述当前接口特征信息与所述预设接口特征信息不匹配时,对所述初始接口文档进行更新。
在一个实施例中,处理器执行计算机程序时还实现上述其他实施例中的接口文档的处理方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
响应于服务端的接口特征校验请求,从所述接口特征校验请求中确定待校验接口的接口标识;
获取所述接口标识对应的预设接口特征信息;其中,所述预设接口特征信息为初始接口文档对应的接口特征信息,所述初始接口文档根据所述服务端的初始接口代码生成;
确定所述服务端的当前接口代码,并获取所述当前接口代码对应的当前接口特征信息;其中,所述当前接口特征信息为当前接口代码文档对应的接口特征信息,所述当前接口代码文档根据所述当前接口代码生成;
当所述当前接口特征信息与所述预设接口特征信息不匹配时,对所述初始接口文档进行更新。
在一个实施例中,计算机程序被处理器执行时还实现上述其他实施例中的接口文档的处理方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。