发明内容
本公开实施例至少提供一种接口维护方法、接口维护装置、电子设备以及计算机可读存储介质,确保发布在网关的接口信息与本地接口信息的一致性,进而提高接口调用的安全性。
本公开实施例提供了一种接口维护方法,包括:
基于本地接口信息,生成与所述本地接口信息对应的多端接口代码;所述多端接口代码包括客户端接口代码,用于在客户端实现与所述本地接口信息对应的功能;
将所述本地接口信息发布至网关,使得所述网关基于所述本地接口信息的参数信息,对所述客户端发送的接口访问请求的参数信息进行校验,其中,所述接口访问请求基于所述客户端接口代码生成。
本公开实施例中,基于本地接口信息,生成多端接口代码,可以确保各端之间的接口开发代码的一致性;并将本地接口信息发布至网关,如此,可以确保发布在网关的接口信息与本地接口信息的一致性,进而提高接口调用的安全性。
一种可选的实施方式中,所述多端接口代码还包括服务端接口代码;所述将本地接口信息发布至网关后,所述方法还包括:
响应于所述网关发送的所述接口访问请求,并基于所述接口访问请求的参数信息,执行与所述接口访问请求对应的本地接口信息对应的服务端接口代码,并生成与所述接口访问请求对应的返回结果;
将所述返回结果发送至网关,使得所述网关基于所述本地接口信息的参数信息,对所述返回结果的参数信息进行校验。
本公开实施例中,通过将所述返回结果发送至网关,如此,即可在网关实现对返回结果的校验,并且可以确保服务端响应接口访问请问产生的返回结果与本地接口信息的参数信息的一致性。
一种可选的实施方式中,所述接口访问请求携带目标访问服务信息;所述基于所述接口访问请求的参数信息,执行与所述接口访问请求对应的本地接口信息对应的服务端接口代码,包括:
基于所述目标访问服务信息,确定本地服务接口信息;
基于所述本地服务接口信息,执行与所述接口访问请求对应的本地接口信息对应的服务端接口代码。
本公开实施例中,通过目标访问服务信息确定本地服务接口信息,如此,缩小了确定的范围,进而可以节约时间成本,提高校验的效率。
一种可选的实施方式中,所述基于本地接口信息,生成与所述本地接口信息对应的多端接口代码之前,所述方法还包括:
基于接口描述语言,对所述本地接口的参数信息进行定义,生成所述本地接口信息;所述本地接口信息存储于GIT仓库。
本公开实施例中,由于接口描述语言的语义清晰,结构简单,通过接口描述语言对本地接口的参数信息进行定义,可以是本地接口信息的内容更加清晰。
一种可选的实施方式中,所述方法还包括:
在所述GIT仓库中的本地接口信息有更新的情况下,生成与更新的本地接口信息对应的变更消息,并将所述变更消息写入消息队列;
基于消费者机制,读取所述消息队列;
所述基于本地接口信息,生成与所述本地接口信息对应的接口代码,包括:
在读取到所述消息队列中的变更消息的情况下,基于所述更新的本地接口信息,生成与所述更新的本地接口信息对应的接口代码;
所述将所述本地接口信息发布至网关,包括:
将所述更新的本地接口信息发布至所述网关。
本公开实施例中,在所述GIT仓库中的本地接口信息有更新的情况下,可以自动生成多端接口代码,并将更新后的代码发布至网关,可以及时地向接口用户提供更新的接口信息,有利于提高接口研发的效率。
一种可选的实施方式中,所述将所述本地接口信息发布至网关,包括:
将所述本地接口信息直接发布至网关;或者,
提供查询接口,以供所述网关基于所述查询接口获取所述本地接口信息。
本公开实施例中,通过上述两种方式将本地接口信息发布至网关,可以使得接口信息发布的方式具有更多的选择性。
本公开实施例提供了一种接口维护方法,包括:
接收服务端发送的本地接口信息;所述本地接口信息用于生成客户端接口代码;
接收客户端发送的接口访问请求,所述接口访问请求基于所述客户端接口代码生成;
基于所述本地接口信息的参数信息,对所述接口访问请求的参数信息进行校验。
本公开实施例,基于本地接口信息的参数信息,对所述接口访问请求的参数信息进行校验,可以在接口上线后,确保通过客户端提交的接口访问请求的参数信息与本地接口信息的一致性,如此,可以提高接口上线后的接口调用的安全性。
一种可选的实施方式中,所述方法还包括:
在所述接口访问请求的参数信息与所述本地接口信息的参数信息一致的情况下,将所述接口访问请求发送至服务端。
本公开实施例中,可以避免将不符合要求的接口访问请求的参数信息发送至服务端,可以确保接口调用的安全性。
一种可选的实施方式中,所述将所述接口访问请求发送至服务端之后,所述方法还包括:
接收所述服务端响应于所述接口访问请求而产生的返回结果;
基于所述本地接口信息的参数信息,对所述返回结果的参数信息进行校验;
在所述返回结果的参数信息与所述本地接口信息的参数信息一致的情况下,将所述返回结果发送至所述客户端。
本公开实施例中,通过网关接收服务端响应客户端发送的接口访问请求而产生的返回结果,并对返回结果进行校验,如此,可以确保返回结果与本地接口信息的参数信息的一致性。
一种可选的实施方式中,所述方法还包括:
在所述接口访问请求的参数信息与所述本地接口信息的参数信息不一致的情况下,去除与所述本地接口信息的参数信息不一致的参数信息,得到修改后的接口访问请求,并将所述修改后的接口访问请求发送至所述服务端。
本公开实施例中,通过去除与本地接口信息的参数信息不一致的参数信息,可以确保接口访问请求的参数信息与本地接口信息的参数信息的一致性,进而提高接口调用过程中的安全性。
一种可选的实施方式中,所述方法还包括:
在所述接口访问请求的参数信息与所述本地接口信息的参数信息不一致的情况下,生成第一提示信息;和/或,
在所述返回结果与所述本地接口信息的参数信息不一致的情况下,生成第二提示信息。
本公开实施例中,通过生成提示信息,便于对管理人员进行提示。
本公开实施例还提供一种接口维护装置,所述装置包括:
生成模块,用于基于本地接口信息,生成与所述本地接口信息对应的多端接口代码;所述多端接口代码包括客户端接口代码,用于在客户端实现与所述本地接口信息对应的功能;
发布模块,用于将所述本地接口信息发布至网关,使得所述网关基于所述本地接口信息的参数信息,对所述客户端发送的接口访问请求的参数信息进行校验,其中,所述接口访问请求基于所述客户端接口代码生成。
一种可选的实施方式中,所述多端接口代码还包括服务端接口代码;所述装置还包括代码执行模块,所述代码执行模块用于:
响应于所述网关发送的所述接口访问请求,并基于所述接口访问请求的参数信息,执行与所述接口访问请求对应的本地接口信息对应的服务端接口代码,并生成与所述接口访问请求对应的返回结果;
所述发布模块还用于:
将所述返回结果发送至网关,使得所述网关基于所述本地接口信息的参数信息,对所述返回结果的参数信息进行校验。
一种可选的实施方式中,所述接口访问请求携带目标访问服务信息;所述代码执行模块模块具体用于:
基于所述目标访问服务信息,确定本地服务接口信息;
基于所述本地服务接口信息,执行与所述接口访问请求对应的本地接口信息对应的服务端接口代码。
一种可选的实施方式中,所述装置还包括定义模块,所述定义模块用于:
基于接口描述语言,对本地接口的参数信息进行定义,生成所述本地接口信息;所述本地接口信息存储于GIT仓库。
一种可选的实施方式中,所述定义模块还用于:
在所述GIT仓库中的本地接口信息有更新的情况下,生成与更新的本地接口信息对应的变更消息,并将所述变更消息写入消息队列;
基于消费者机制,读取所述消息队列;
所述生成模块具体用于:
在读取到所述消息队列中的变更消息的情况下,基于所述更新的本地接口信息,生成与所述更新的本地接口信息对应的接口代码;
所述发布模块具体用于:
将所述更新的本地接口信息发布至所述网关。
一种可选的实施方式中,所述发布模块具体用于:
将所述本地接口信息直接发布至网关;或者,
提供查询接口,以供所述网关基于所述查询接口获取所述本地接口信息。
本公开实施例还提供一种接口维护装置,所述装置包括:
接收模块,用于接收服务端发送的本地接口信息;所述本地接口信息用于生成客户端接口代码;
所述接收模块还用于接收客户端发送的接口访问请求,所述接口访问请求基于所述客户端接口代码生成;
校验模块,用于基于所述本地接口信息的参数信息,对所述接口访问请求的参数信息进行校验。
一种可选的实施方式中,所述装置还包括发送模块,所述发送模块用于:
在所述接口访问请求的参数信息与所述本地接口信息的参数信息一致的情况下,将所述接口访问请求发送至服务端。
一种可选的实施方式中,所述接收模块还用于:
接收所述服务端响应于所述接口访问请求而产生的返回结果;
所述校验模块还用于:
基于所述本地接口信息的参数信息,对所述返回结果的参数信息进行校验;
所述发送模块还用于:
在所述返回结果的参数信息与所述本地接口信息的参数信息一致的情况下,将所述返回结果发送至所述客户端。
一种可选的实施方式中,所述装置还包括修改模块,所述修改模块用于:
在所述接口访问请求的参数信息与所述本地接口信息的参数信息不一致的情况下,去除与所述本地接口信息的参数信息不一致的参数信息,得到修改后的接口访问请求;
所述发送模块还用于:
将所述修改后的接口访问请求发送至所述服务端。
一种可选的实施方式中,所述装置还包括提示信息生成模块,所述提示信息生成模块用于:
在所述接口访问请求的参数信息与所述本地接口信息的参数信息不一致的情况下,生成第一提示信息;和/或,
在所述返回结果与所述本地接口信息的参数信息不一致的情况下,生成第二提示信息。
本公开实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述接口维护方法。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述接口维护方法。
关于上述接口维护装置、电子设备、及计算机可读存储介质的效果描述参见上述接口维护方法的说明,这里不再赘述。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
请参见图1,图1为本公开实施例所提供的一种接口研发流程的示意图。如图1中所示,接口研发流程可以基于应用程序编程接口管理平台(例如YAPI或者swagger等)进行实现,现有的接口研发流程包括接口设计、接口开发、接口上线以及线上运维四个阶段,其中,接口设计是指在服务端对接口信息进行定义,并在客户端对定义的接口信息进行评审,以保证接口的设计质量;接口开发是指根据定义好的接口信息,手写各端的接口代码,用于在各端实现与接口对应的功能逻辑,以确保接口的设计与实现的一致性,然而,通过手写接口代码的效率较低,并且对于代码实现与接口设计的一致性,需要依赖代码测试和联调发现,容易出错。接口上线是指在网关对接口进行维护,并分别在服务端和客户端进行上线,然而,在服务端对接口进行更新时,需要人工重复地将更新的接口发布至网关,以向客户端提供最新的本地接口信息,如此,不仅影响客户端的接口信息更新的实时性,还会降低接口发布的效率。
除此之外,在接口上线后,也即上线运维阶段,还缺少对于客户端提交的接口访问请求中所携带的需要访问的接口信息与所定义的接口信息一致性的保障机制,不仅会影响服务端与客户端之间的正常通信,还会降低接口调用过程的安全性。
基于上述研究,本公开实施例提供了一种接口维护方法,该方法包括:基于本地接口信息,生成与所述本地接口信息对应的多端接口代码;所述多端接口代码包括客户端接口代码,用于在客户端实现与所述本地接口信息对应的功能;将所述本地接口信息发布至网关,使得所述网关基于所述本地接口信息的参数信息,对所述客户端发送的接口访问请求的参数信息进行校验,其中,所述接口访问请求基于所述客户端接口代码生成。
本公开实施例中,基于本地接口信息,生成多端接口代码,可以确保各端之间的接口开发代码的一致性;并将本地接口信息发布至网关,如此,可以确保发布在网关的接口信息与本地接口信息的一致性,进而提高接口调用的安全性。
下面结合图2对本公开实施例提供的接口维护方法进行详细介绍。本公开实施例中的执行主体一般为具有一定计算能力的电子设备,该电子设备例如包括:终端设备或服务器或其它处理设备。其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云存储、大数据和人工智能平台等基础云计算服务的云服务器。其它处理设备可以是包括处理器和存储器的设备,在此不做限定。在一些可能的实施方式中,该接口维护方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。为方便理解与描述,下面以执行主体为服务器进行详细介绍。
请参阅图2,图2为本公开实施例所提供的第一种接口维护方法的流程图。如图2所示,本公开实施例提供的接口维护方法应用于服务端,包括以下S101~S102:
S101,基于本地接口信息,生成与所述本地接口信息对应的多端接口代码;所述多端接口代码包括客户端接口代码,用于在客户端实现与所述本地接口信息对应的功能。
其中,本地接口信息是指在服务端定义的接口信息,具体的,本地接口信息包括本地接口的参数信息,该参数信息包括接口的方法(method)(GET,POST),路径(path),请求参数,返回参数,序列化方式(例如pb,或者json)等数据信息。
可以理解,服务端对客户端提供的仅包括接口信息,由于仅通过接口信息并不能执行该接口信息对应的底层功能逻辑,因此,需要基于本地接口信息生成对应的多端接口代码,其中包括服务端接口代码和客户端接口代码,进而可以分别在服务端和客户端实现对应的功能,例如,服务端根据服务端接口代码来实现该接口的底层功能逻辑以及客户端可以根据客户端接口代码,使得用户能够通过客户端提交接口访问请求等。
需要说明的是,本公开实施例中,是以一个本地接口信息为例进行说明的,在其他实施方式中,还可以是多个本地接口信息,在此不做限定。
在一些实施方式中,在生成与本地接口信息对应的接口代码时,可以基于代码生成工具(脚手架)生成多端接口代码,具体的,可以在API管理平台集成脚手架,并可以根据本地接口信息自动生成多端接口代码,如此,不仅可以保证服务端与客户端之间的接口信息的定义与实现的一致性,可靠性高,还可以提高研发效率。
在本公开实施例中,本地接口信息是通过接口描述语言(Interface descriptionlanguage,IDL)描述的接口信息。可以理解,IDL是一种用来描述接口的语言,与编程语言无关,可以通过一种中立的方式来描述接口,使得在不同平台上运行的对象和用不同语言编写的程序可以相互通信交流。由于IDL语义清晰,结构简单,也可以用来描述其他数据类型。
另外,使用IDL对本地接口的参数信息进行定义,具有如下优点:
(1)对公关model的描述能力较强。示例性地,在两个接口地描述信息存在部分相同的情况下,可以将相同部分定义为公共模型,如此,可以避免重复定义,提高公共model的复用性,并且,在对接口信息进行修改时,也只需要修改一次即可,有利于节约研发的时间成本。
(2)对HTTP和RPC的维护方式比较统一。其中,HTTP(网络传输协议)和RPC(远程过程调用)是指客户端调用服务端接口的两种方式,在客户端调用IDL时,可以同时支持上述两种方式。
(3)可以与代码生成工具和网关发布的功能进行打通,如此,可以快速地完成接口对外更新以及接口的功能实现。
S102,将所述本地接口信息发布至网关,使得所述网关基于所述本地接口信息的参数信息,对所述客户端发送的接口访问请求的参数信息进行校验,其中,所述接口访问请求基于所述客户端接口代码生成。
其中,网关是指具有转发功能的一种服务。
具体的,在接口发布阶段,可以将本地接口信息发布至网关,由于网关具有转发功能,在网关接收到接口访问请求时,可以准确的将客户端的接口访问请求转发至服务端,以确定与接口访问请求对应的服务。
在一些实施方式中,针对步骤S102,在将所述本地接口信息发布至网关时,可以将所述本地接口信息直接发布至网关;或者,还可以提供查询接口,以供所述网关通过调用该查询接口获取所述本地接口信息。如此,可以使得接口信息发布的方式具有更多的选择性。
本公开实施例中,基于本地接口信息,生成多端接口代码,可以确保各端之间的接口开发代码的一致性;并将本地接口信息发布至网关,如此,可以确保发布在网关的接口信息与本地接口信息的一致性,进而提高接口调用的安全性。
可以理解,为了确保接口访问请求的参数信息与本地接口信息的参数信息的一致性,需要对接口访问请求的参数信息进行一致性校验。
请参阅图3,图3为本公开实施例所提供的第二种接口维护方法的流程图。与图2中所示的接口维护方法不同的是,所述多端接口代码还包括服务端接口代码;该接口维护方法还包括以下S103~S104:
S103,响应于所述网关发送的所述接口访问请求,并基于所述接口访问请求的参数信息,执行与所述接口访问请求对应的本地接口信息对应的服务端接口代码,并生成与所述接口访问请求对应的返回结果。
可以理解,若网关检测到客户端发送的接口访问请求的参数信息与本地接口信息的参数信息一致,则网关会将该接口访问请求转发至服务端,服务端会根据接口访问请求执行相应的服务端逻辑,并会产生一个返回结果。
S104,将所述返回结果发送至网关,使得所述网关基于所述本地接口信息的参数信息,对所述返回结果的参数信息进行校验。
其中,所述返回结果的参数信息也包括接口的方法(method)(GET,POST),路径(path),请求参数,返回参数,序列化方式(例如pb,或者json)等数据信息。
在接口维护的过程中,除了需要对客户端发送的接口访问请求进行一致性校验,还需要将服务端响应接口访问请求产生的返回结果进行校验,因此,服务端需要将返回结果发送至网关,使得网关对返回结果的参数信息进行校验。如此,可以确保服务端响应接口访问请问产生的返回结果与本地接口信息的参数信息的一致性。
在一些实施方式中,所述接口访问请求携带目标访问服务信息;针对上述步骤S103,在基于所述接口访问请求的参数信息,执行与所述接口访问请求接口访问请求对应的本地接口信息对应的服务端接口代码时,如图4所示,包括以下S1031~S1032:
S1031,基于所述目标访问服务信息,确定本地服务接口信息。
S1032,基于所述本地服务接口信息,执行与所述接口访问请求对应的本地接口信息对应的服务端接口代码。
可以理解,当网关把客户端提交的接口访问请求转发至服务端后,首先会根据接口访问请求携带的目标访问服务信息,确定该接口访问请求对应的服务端的服务,然后基于该服务确定所述本地接口信息,如此,可以缩小本地接口信息所在的范围,进而提高确定本地接口信息的效率。
其中,目标访问服务信息是指客户端所提交的用户需要访问的服务端服务的信息。
示例性地,客户端提交的接口访问请求可以是调用服务端的直播服务中建立直播间这一接口的接口访问请求,则服务端在接收到接口访问请求时,首先会确定直播服务,并基于该直播服务确定建立直播间的接口,如此,客户端即可调用该接口,实现与接口访问请求对应的接口功能。
请参阅图5,图5为本公开实施例所提供的第三种接口维护方法的流程图,与图2中的接口维护方法不同的是,如图5所示,在步骤S101之前还包括S100:
S100,基于接口描述语言,对所述本地接口的参数信息进行定义,生成所述本地接口信息;所述本地接口信息存储于GIT仓库。
其中,GIT是一个开源的分布式版本控制系统,可以高效地处理项目的版本管理。GIT包括远程仓库系统和本地开发工具两部分,并提供本地命令行工具,使用GIT命令行工具可以高效地和GIT远程服务器进行交互。例如,开发者可以通过GIT命令把本地开发的本地接口信息推送到远程仓库,其他开发者可以从远程仓库拉取推送的最新的本地接口信息。
请参阅图6,图6为本公开实施例所提供的第四种接口维护方法的流程图,如图6中所示,所述方法包括以下S201~S205:
S201,基于接口描述语言,对本地接口的参数信息进行定义,生成所述本地接口信息;所述本地接口信息存储于GIT仓库。
S202,在所述GIT仓库中的本地接口信息有更新的情况下,生成与更新的本地接口信息对应的变更消息,并将所述变更消息写入消息队列。
其中,消息队列是指在消息的传输过程中保存消息的容器。在本公开实施例中,消息队列可以通过分布式日志系统(Kafka)进行管理。
S203,基于消费者机制,读取所述消息队列。
S204,在读取到所述消息队列中的变更消息的情况下,基于所述更新的本地接口信息,生成与所述更新的本地接口信息对应的接口代码。
本实施方式中,为了实现接口代码的自动更新,在读取到本地接口信息的变更消息时,可以自动触发代码生成工具(脚手架)自动进行代码生成,如此,可以提高代码生成的效率以及准确率。
S205,将所述更新的本地接口信息发布至所述网关。
可以理解,在本地接口信息更新的情况下,还需要将更新的本地接口信息发布至网关,以确保更新的本地接口信息可以及时上线,进而可以保证网关发布与更新的本地接口信息的一致性。
请参阅图7,图7为本公开实施例所提供的第五种接口维护方法的流程图,应用于网关,如图7中所示,所述方法包括以下S701~S703:
S701,接收服务端发送的本地接口信息;所述本地接口信息用于生成客户端接口代码。
可以理解,为了使得网关能够对接口访问请求的参数信息进行校验,因此,网关需要接收服务端发送的本地接口信息,用于对客户端发送的接口访问请求的参数信息进行校验。
S702,接收客户端发送的接口访问请求,所述接口访问请求基于所述客户端接口代码生成。
可以理解,接口访问请求是基于客户端的接口代码生成的,并且客户端在提交接口访问请求到服务端时,首先需要将接口访问请求发送至网关。
S703,基于所述本地接口信息的参数信息,对所述接口访问请求的参数信息进行校验。
具体的,网关在接收到接口访问请求后,可以根据接口访问请求的参数信息,确定本地接口信息,并将本地接口信息与所述接口访问请求的参数信息进行比对,进而完成对所述接口访问请求的参数信息的校验。
请参阅图8,图8为本公开实施例所提供的第六种接口维护方法的流程图,如图8中所示,本实施方式所提供的接口维护方法包括以下S801~S805:
S801,接收服务端发送的本地接口信息;所述本地接口信息用于生成客户端接口代码。
S802,接收客户端发送的接口访问请求,所述接口访问请求基于所述客户端接口代码生成。
其中,步骤S801~S802的具体描述内容与前述实施例中的步骤S701~S702的具体描述内容类似,在此不作赘述。
S803,基于所述本地接口信息的参数信息,判断所述接口访问请求的参数信息与所述本地接口信息的参数信息是否一致,若是,执行步骤S804,若否,执行步骤S805。
S804,将所述接口访问请求发送至服务端。
可以理解,客户端提交的接口访问请求需要提交至服务端进行处理,因此,在网关校验出所述接口访问请求的参数信息与所述本地接口信息的参数信息一致的情况下,则将接口访问请求提交至服务端,如此,便可以确保接口访问请求的安全性。
S805,去除与所述本地接口信息不一致的参数信息,得到修改后的接口访问请求,并将所述修改后的接口访问请求发送至所述服务端。
可以理解,若网关检测到客户端发送的接口访问请求的参数信息与本地接口信息的参数信息不一致,则会去除与所述本地接口信息不一致的参数信息,得到修改后的接口访问请求,如此,即可将修改后的接口访问请求发送至服务端。在另一些实施方式中,若网关检测到客户端发送的接口访问请求的参数信息与本地接口的参数信息不一致,还可以对该接口访问请求进行拦截并生成提示信息,进而可以确保客户端发送的接口访问请求的安全性。
请参阅图9,图9为本公开实施例所提供的一种返回结果的校验方法的流程图,如图9中所示,本实施方式所提供的接口维护方法包括以下S901~S904:
S901,接收所述服务端响应于所述接口访问请求而产生的返回结果。
其中,针对所述返回结果的具体描述信息可以参考步骤S104的描述内容,在此不做赘述。
S902,基于所述本地接口信息的参数信息,判断所述返回结果的参数信息与所述本地接口信息的参数信息是否一致,若是,执行步骤S903,若否,执行步骤S904。
S903,将所述返回结果发送至所述客户端。
可以理解,接口维护的过程中还包括对服务端发送至网关的返回结果的校验,因此,网关需要接收服务端发送的返回结果,并基于所述本地接口信息的参数信息对所述返回结果的参数信息进行校验,若本地接口信息的参数信息与所述返回结果的参数信息一致,则将返回结果发送至客户端,以完成接口访问请求的全部流程。
S904,去除与所述本地接口信息不一致的参数信息,得到修改后的返回结果,并将所述修改后的返回结果发送至所述客户端。
可以理解,修改后的返回结果符合要求,进而可以将修改后的返回结果发送至服务端,已完成接口调用的整个流程。在另一些实施方式中,若所述返回结果的参数信息与所述本地接口信息的参数信息不一致,还可以对该返回结果进行拦截,如此,可以避免服务端将一些不符合要求的数据(例如,敏感数据)发送至客户端,进而确保接口调用的安全性。
示例性地,所述不一致的参数信息可以是一些敏感参数信息,具体的,在对接口的参数信息进行定义时,为了保护用户的信息以及遵守相关条例,不会将敏感参数信息定义为本地接口信息的参数信息,然而,在通过客户端提交的接口访问请求的参数信息中可能会携带敏感参数信息,此时,需要将敏感参数信息进行去除。示例性地,敏感参数信息可以是用户姓名或者用户手机号等参数信息,在此不做限定。
在一些实施方式中,在所述接口访问请求的参数信息与所述本地接口信息的参数信息不一致的情况下,还可以生成第一提示信息,进而对管理人员进行提示。
在另一些实施方式中,在所述返回结果与所述本地接口信息的参数信息不一致的情况下,还可以生成第二提示信息,进而对管理人员进行提示。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与接口维护方法对应的接口维护装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述接口维护方法相似,因此装置的实施可以参阅方法的实施,重复之处不再赘述。
请参阅图10,为本公开实施例提供的第一种接口维护装置的结构示意图,所述装置包括:生成模块1010以及发布模块1020;其中,
生成模块1010,用于基于本地接口信息,生成与所述本地接口信息对应的多端接口代码;所述多端接口代码包括客户端接口代码,用于在客户端实现与所述本地接口信息对应的功能;
发布模块1020,用于将所述本地接口信息发布至网关,使得所述网关基于所述本地接口信息的参数信息,对所述客户端发送的接口访问请求的参数信息进行校验,其中,所述接口访问请求基于所述客户端接口代码生成。
请参阅图11,图11为本公开实施例提供的第二种接口维护装置的结构示意图,与图10中所示的接口维护装置不同的是,所述多端接口代码还包括服务端接口代码;所述装置还包括代码执行模块1030,所述代码执行模块1030用于:
响应于所述网关发送的所述接口访问请求,并基于所述接口访问请求的参数信息,执行与所述接口访问请求对应的本地接口信息对应的服务端接口代码,并生成与所述接口访问请求对应的返回结果;
所述发布模块1020还用于:
将所述返回结果发送至网关,使得所述网关基于所述本地接口信息的参数信息,对所述返回结果的参数信息进行校验。
一种可选的实施方式中,所述接口访问请求携带目标访问服务信息;所述代码执行模块1030具体用于:
基于所述目标访问服务信息,确定本地服务接口信息;
基于所述本地服务接口信息,执行与所述接口访问请求对应的本地接口信息对应的服务端接口代码。
一种可选的实施方式中,所述装置还包括:定义模块1040,所述定义模块1040用于:
基于接口描述语言,对本地接口的参数信息进行定义,生成所述本地接口信息;所述本地接口信息存储于GIT仓库。
一种可选的实施方式中,所述定义模块1040还用于:
在所述GIT仓库中的本地接口信息有更新的情况下,生成与更新的本地接口信息对应的变更消息,并将所述变更消息写入消息队列;
基于消费者机制,读取所述消息队列;
所述生成模块1010具体用于:
在读取到所述消息队列中的变更消息的情况下,基于所述更新的本地接口信息,生成与所述更新的本地接口信息对应的接口代码;
所述发布模块1020具体用于:
将所述更新的本地接口信息发布至所述网关。
一种可选的实施方式中,所述发布模块1020具体用于:
将所述本地接口信息直接发布至网关;或者,
提供查询接口,以供所述网关基于所述查询接口获取所述本地接口信息。
请参阅图12,图12为本公开实施例提供的第三种接口维护装置的结构示意图,如图12中所示,所述装置包括接收模块1110以及校验模块1120;其中:
接收模块1110,用于接收服务端发送的本地接口信息;所述本地接口信息用于生成客户端接口代码;
所述接收模块1110,还用于接收客户端发送的接口访问请求,所述接口访问请求基于所述客户端接口代码生成;
校验模块1120,用于基于所述本地接口信息的参数信息,对所述接口访问请求的参数信息进行校验。
请参阅图13,图13为本公开实施例提供的第四种接口维护装置的结构示意图,如图13中所示,所述装置还包括发送模块1130,所述发送模块1130用于:
在所述接口访问请求的参数信息与所述本地接口信息的参数信息一致的情况下,将所述接口访问请求发送至服务端。
一种可选的实施方式中,所述接收模块1110还用于:
接收所述服务端响应于所述接口访问请求而产生的返回结果;
所述校验模块1120还用于:
基于所述本地接口信息的参数信息,对所述返回结果的参数信息进行校验;
所述发送模块1130还用于:
在所述返回结果的参数信息与所述本地接口信息的参数信息一致的情况下,将所述返回结果发送至所述客户端。
一种可选的实施方式中,所述装置还包括修改模块1140,所述修改模块1140用于:
在所述接口访问请求的参数信息与所述本地接口信息的参数信息不一致的情况下,去除与所述本地接口信息的参数信息不一致的参数信息,得到修改后的接口访问请求;
所述发送模块1130还用于:
将所述修改后的接口访问请求发送至所述服务端。
一种可选的实施方式中,所述装置还包括提示信息生成模块1150,所述提示信息生成模块1150用于:
在所述接口访问请求的参数信息与所述本地接口信息的参数信息不一致的情况下,生成第一提示信息;和/或,
在所述返回结果与所述本地接口信息的参数信息不一致的情况下,生成第二提示信息。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
基于同一技术构思,本公开实施例还提供了一种电子设备。参照图14所示,为本公开实施例提供的电子设备1500的结构示意图,包括处理器1501、存储器1502、和总线1503。其中,存储器1502用于存储执行指令,包括内存15021和外部存储器15022;这里的内存15021也称内存储器,用于暂时存放处理器1501中的运算数据,以及与硬盘等外部存储器15022交换的数据,处理器1501通过内存15021与外部存储器15022进行数据交换。
本申请实施例中,存储器1502具体用于存储执行本申请方案的应用程序代码,并由处理器1501来控制执行。也即,当电子设备1500运行时,处理器1501与存储器1502之间通过总线1503通信,使得处理器1501执行存储器1502中存储的应用程序代码,进而执行前述任一实施例中的方法。
处理器1501可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本公开实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
其中,存储器1502可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备800的具体限定。在本申请另一些实施例中,电子设备800可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的接口维护方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的接口维护方法的步骤,具体可参阅上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和终端的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、终端和方法,可以通过其它的方式实现。以上所描述的终端实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。