CN113590178B - Api实例的管理方法、装置、存储介质及电子设备 - Google Patents
Api实例的管理方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN113590178B CN113590178B CN202110868418.4A CN202110868418A CN113590178B CN 113590178 B CN113590178 B CN 113590178B CN 202110868418 A CN202110868418 A CN 202110868418A CN 113590178 B CN113590178 B CN 113590178B
- Authority
- CN
- China
- Prior art keywords
- api
- instance
- api instance
- provider
- new version
- 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
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
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)
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种API实例的管理方法、装置、存储介质及电子设备,属于网络通信领域。本申请可以实现更安全管理API实例的发布,避免因API实例的无序更改带来API消费方与API提供方的不兼容,从而出现API实例中断的问题。API提供方上报API信息后,API管理系统对上报信息与上一版本的API实例集合对行对比,发现不符合版本规则的,禁止发布新版本API实例集合并以警告提示,避免升级带来的兼容性问题。
Description
技术领域
本申请涉及网络通信领域,尤其涉及一种API调用、装置、存储介质及电子设备。
背景技术
随着云技术的发展,越来越多的企业使用微服务来提供可以对市场快速反应的服务,但是伴随着微服务的兴起,开发人员逐渐认识到微服务管理的重要性与难度。API提供方一般提供多个微服务,微服务即API(Application Programming Interface,应用程序接口)服务,供各个API消费者进行API订阅和调用,在API提供方提供的微服务会发生版本升级,如何确保版本升级进行精细化管理以及保证API实例的可靠性是目前亟待解决的问题。
发明内容
为解决上述的技术问题,本申请提供一种API实例的管理方法、装置、存储介质及电子设备,实现版本升级时对API实例进行精细化管理和保证API实例的可靠性。
第一方面,本申请提供了一种API实例的管理方法,包括:
接收来自API提供方的API信息;
根据所述API信息确定待发布的新版本API实例集合;
比较所述新版本API实例集合和当前部署的旧版本API实例集合的差异情况;
若所述差异情况为删除所述旧版本API实例集合中的API实例,则判断该删除的API实例是否被订阅,若为是,则禁止发布所述新版本API实例集合,以及向所述API提供方发送发布失败消息;
若所述差异情况表示所述旧版本API实例集合中的第一API实例更新为所述新版本API实例集合中的第二API实例,判断所述第一API实例是否被订阅,若为是,指示所述API提供方对所述第一API实例进行副本复制得到第三API实例以及将所述第三API实例添加到所述新版本API实例集合中,以及将所述新版本API实例集合中的第三API实例和所述第二API实例进行关联,关联后发布所述新版本API实例集合,向所述API提供方发送发布成功消息;其中,所述第三API实例和所述第二API实例同时运行;或所述第三API实例的有效期结束时,停用所述第三API实例;或在成功发布所述新版本API实例集合时停用所述第三API实例。
第二方面,本申请提供了一种API实例的管理装置,应用于多个服务,所述调用装置包括:
收发单元,用于接收来自API提供方的API信息;
处理单元,用于根据所述API信息确定待发布的新版本API实例集合;
所述处理单元,还用于比较所述新版本API实例集合和当前部署的旧版本API实例集合的差异情况;
所述处理单元,还用于若所述差异情况为删除所述旧版本API实例集合中的API实例,则判断该删除的API实例是否被订阅,若为是,则禁止发布所述新版本API实例集合,以及通过所述收发单元向所述API提供方发送发布失败消息;
所述处理单元,还用于若所述差异情况表示所述旧版本API实例集合中的第一API实例更新为所述新版本API实例集合中的第二API实例,判断所述第一API实例是否被订阅,若为是,对所述第一API实例进行副本复制得到第三API实例以及将所述第三API实例添加到所述新版本API实例集合中,以及将所述新版本API实例集合中的第三API实例和所述第二API实例进行关联,关联后发布所述新版本API实例集合,通过所述收发单元向所述API提供方发送发布成功消息;其中,所述第三API实例和所述第二API实例同时运行;或所述第三API实例的有效期结束时,停用所述第三API实例;或在成功发布所述新版本API实例集合时停用所述第三API实例。
本申请又一方面提供了一种装置,可以实现上述第一方面或第二方面的API实例的管理方法。例如所述装置可以是服务器或终端设备。可以通过软件、硬件、或者通过硬件执行相应的软件实现上述方法。
在一种可能的实现方式中,所述装置的结构中包括处理器、存储器;所述处理器被配置为支持所述装置执行上述应用测试方法中相应的功能。存储器用于与处理器耦合,其保存所述装置必要的程序(指令)和/或数据。可选的,所述装置还可以包括通信接口用于支持所述装置与其他网元之间的通信。
在另一种可能的实现方式中,所述装置可以包括执行上述方法中相应动作的单元模块。
在又一种可能的实现方式中,包括处理器和收发装置,所述处理器与所述收发装置耦合,所述处理器用于执行计算机程序或指令,以控制所述收发装置进行信息的接收和发送;当所述处理器执行所述计算机程序或指令时,所述处理器还用于实现上述方法。
本申请又一方面提供了一种装置,该装置包括:存储器和处理器;其中,所述存储器中存储一组程序代码,且所述处理器用于调用所述存储器中存储的程序代码,执行各方面所述的方法。
本申请的又一方面提了供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本申请的又一方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
根据以上的实施例,实现更安全管理API实例的发布,避免因API实例的无序更改带来API消费方与API提供方的不兼容,从而出现API实例中断的问题。API提供方上报API信息后,API管理系统对上报信息与上一版本的API实例集合对行对比,发现不符合版本规则的,禁止发布新版本API实例集合并以警告提示,避免升级带来的兼容性问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种系统架构图;
图2是本申请实施例提供的API实例的管理方法的流程示意图;
图3是本申请实施例提供的旧版本API实例集合和新版本API实例集合的差异情况的示意图;
图4是本申请实施例提供的订阅映射信息的示意图;
图5是本申请实施例提供的令牌鉴权的交互示意图;
图6是本申请实施例提供的生成JAR包的原理示意图;
图7是本申请实施例提供的一种装置的结构示意图;
图8是本申请提供的一种装置的另一结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
图1示出了可以应用于本申请的API实例的管理方法或API实例的管理装置的示例性系统架构。
如图1所示,系统架构可以包括:API提供方、API消费方、API管理系统、分布式缓存、关系型数据库、配置中心和注册中心。本申请的API提供方表示提供API实例的设备,API消费方表示调用API实例的设备,API管理系统表示管理API调用的设备,设备可以为服务器。
其中,API提供方是对外发布API实例的提供方,API提供方可以引入由API管理系统提供的API管理组件,由API管理组件与API管理系统进行交互(API管理组件动态采集API提供方发布的接口信息和运行信息,上报到API管理系统)从而在API提供方提供管理能力。
API消费方用于执行API实例的订阅和权限申请,在审核通过后,该API消费方具有目标API实例的访问权限,并可以通过自编码或从API管理系统中下载SDK,实现目标API实例的调用。
API管理系统是本申请的主要覆盖对象,提供对API实例的全生命周期管理、订阅管理、权限管理、熔断限流管理以及监控告警等功能。API管理系统的API采集信息、用户订阅、配置信息和API运行时信息等存储到关系型数据库和缓存中以供使用。当熔断参数和限流参数的参数值在API管理系统中发生变更时,API管理系统推送相关参数值到配置中心,由配置中心统一下发到各个API提供方的API管理组件。
注册中心用于收集API提供方的服务注册信息,API消费方使用SDK执行API调用时,为API提供服务节点信息。
配置中心用于当熔断配置信息和限流配置信息由API管理系统推送到配置中心后,配置中心把相关的配置信息下发到所有API提供方。
关系数据库,用于持久化API信息、消费方订阅信息、熔断配置信息和限流配置信息。
分布式缓存用于缓存API管理系统生成的临时数据。
网络架构中的各个节点之间通过网络通信,网络可以包括各种类型的有线通信链路或无线通信链路,例如:有线通信链路包括光纤、双绞线或同轴电缆的,无线通信链路包括蓝牙通信链路、无线保真(WIreless-FIdelity,Wi-Fi)通信链路或微波通信链路等。可以理解的是,一个节点可以部署一个服务或多个服务。
需要说明的是,本申请实施例提供的API实例的管理方法一般由API管理系统执行。
应理解,图1中的节点的数目仅是示意性的。根据实现需要,可以是任意数量的节点。
为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。
参见图2,图2是本申请实施例提供的API实例的管理方法的流程示意图,在本申请实施例中,所述方法包括:
S201、接收来自API提供方的API信息。
其中,API提供方在需要对当前部署的新版本API实例集合进行更新时,API提供方向API管理系统发送待更新的API实例的API信息,。更新旧版本API实例集合的方式包括:新增、删除和变更,新增是指在旧版本API实例集合中新增API实例,删除是指在旧版本API实例集合中删除API实例,变更是指修改旧版本API实例集合中API实例的指定参数,例如:修改的指定参数包括:API实例的名称、返回类型和传入参数的名称。
API提供方可以通过API管理组件提供相关的特性标记,例如:swagger标记,特性标记对API信息进行标记,API信息包括:请求路径、传入参数、返回类型、数据格式、版本信息和API描述信息,API管理组件扫描特性标记识别上述的API信息,然后将API信息上报给API管理系统。
S202、API管理系统根据API信息确定待发布的新版本API实例集合。
其中,API管理系统解析API信息确定待发布的各个API实例,待发布的各个API实例组成新版本API实例集合。
S203、比较新版本API实例集合和当前部署的旧版本API实例集合的差异情况。
其中,旧版本API实例集合为API提供方当前部署的,旧版本API实例集合包括多个API实例,API管理系统比较新版本API实例集合和旧版本API实例集合之间的差异情况,差异情况表示新版本API集合相对于旧版本API实例集合,API实例的变化情况,差异情况包括如下的一种或多种:在旧版本API集合中新增API实例、在旧版本API集合中删除API实例和在旧版本API集合中更新API实例,更新API实例是指修改API实例的指定参数,例如:指定参数包括:传入参数、API实例名称或返回数据类型等。
例如:参见图3所示,V1版本的API实例集合为旧版本API实例集合,V2版本的API实例集合为新版本API实例集合,V1版本的API实例集合包含的API实例为:getString、getText和getPic,API管理系统根据API提供方上报的API信息得到V2版本的API实例集合包含的API实例为:getString、getValue和getTextByld。V2版本的API实例集合和V1版本的API实例集合进行对比得到的差异结果为:getString未变更、getValue为新增的API实例,V1版本的API实例集合中的getText变更为V2版本的API实例集合中的getTextByld、V1版本的API实例集合中的getPic被删除。
S204、若差异情况为删除旧版本API实例集合中的API实例,则判断该删除的API实例是否被订阅,若为是,则禁止发布新版本API实例集合,以及向API提供方发送发布失败消息。
其中,API管理系统预存储由订阅映射信息,订阅映射信息表示API消费者和订阅的API实例之间的映射关系,API消费者可能订阅一个或多个API提供者的API实例。API管理系统根据差异情况确定旧版本API实例集合中的API实例发生删除时,根据订阅地图查询该删除的API实例是否被订阅,若为是,则API管理系统禁止发布新版本API实例集合,以及向API提供方的设备发送发布失败消息;若该删除的API实例未被订阅,则API管理系统允许发布新版本API实例集合,发布成功时向API提供方发送发布成功消息。
例如:订阅映射信息如图4所示,根据订阅映射信息可以得知,API消费者1订阅了API提供方A的API1-1、API提供方B的API2-1和API2-N,API消费者2订阅了API提供方A的API1-1和API1-N、API提供方B的API2-1和API2-N。
S205、若差异情况表示旧版本API实例集合中的第一API实例更新为新版本API实例集合中的第二API实例,判断第一API实例是否被订阅,若为是,指示API提供方对第一API实例进行复制得到作为副本的第三API实例以及将第三API实例添加到新版本API实例集合中,以及将新版本API实例集合中的第三API实例和第二API实例进行关联,关联后发布新版本API实例集合,向API提供方发送发布成功消息;其中,第三API实例和第二API实例同时运行;或第三API实例的有效期结束时,停用第三API实例;或在成功发布新版本API实例集合时停用第三API实例。
其中,第一API实例和第三API实例的签名相同,即二者为同一API实例,第三API实例和第二API实例具有关联关系,该关联关系由API提供方标注,例如:在新版本API实例集合中,使用fullPath来表示第二API实例和第三API实例之间具有关联关系,同时利用advice字段来指示订阅方对第二API实例的使用建议,例如:advice=1表示第二API和第三API可同时使用,advice=2表示优先使用第二API,不建议使用第三API,advice=3表示第三API即将停用,需立即使用第二API。API管理系统根据订阅映射关系查询第一API实例是否被订阅,若为是,指示API提供方对旧版本API实例集合中的第一API实例进行副本复制得到第三API实例,将第三API实例添加到新版本API实例集合中,API提供方向API管理系统上报包含第二API实例和第三API实例的新版本API实例集合,然后API管理系统建立第三API实例和第二API实例之间的关联关系,发布该新版本API实例集合,在发布成功后向API提供方发送发布成功消息。对于新版本API实例集合中的第三API实例和第二API实例来说,可以采用三种第三API实例的控制策略:第三API实例和第二API实例同时运行;或第三API实例的有效期结束时,停用第三API实例,有效期的大小可以根据实际需求而定;或在成功发布新版本API实例集合时停用第三API实例,API消费者只允许使用第二API实例。
本申请API管理目的在于更安全管理API实例的发布,避免因API实例的无序更改带来API消费方与API提供方的不兼容,从而出现API实例中断的问题。API提供方上报API信息后,API管理系统对上报信息与上一版本的API实例集合对行对比,发现不符合版本规则的,禁止发布新版本API实例集合并以警告提示,避免升级带来的兼容性问题。
例如:参见图3所示,API管理系统确定V2版本的API实例集合中的getTextByld和V1版本的API实例集合中的getText的签名相同,则getTextByld是对getText的指定参数进行修改得到的。从V1版本的API实例集合中的getText进行副本复制以及将副本添加到V2版本的API实例集合中,将V2版本的API实例集合中的getText和getTextByld进行关联。
在一个或多个可能的实施例中,API管理系统维护有订阅映射信息,订阅映射信息表示API消费者和订阅的API实例之间的映射关系。API消费者可根据该订阅映射信息查询API接口文档信息、API实例的版本信息和运维负责人等信息,API提供方可根据该订阅映射信息,自动进行API实例版本变更通知、SDK的生成和为版本发布规则提供校验数据。
对于发生变更的API实例,API管理系统通过订阅映射信息查询订阅该API实例的API消费方,然后向查询到的API消费方发送变更通知消息,例如:通过邮件发送变更通知消息,以便API消费方将业务迁移到变更后的API实例上。
API管理系统根据订阅映射信息查询API消费者订阅的API实例,基于查询到的API实例生成SDK,减少API实例方的客户端编码工作。
API提供方上报的新版本API实例与旧版本API实例进行对比,如果新版本API实例和旧版本API实例具有相同的签名且旧版本API实例已被订阅,则中断上报。
在一个或多个可能的实施例中,API管理系统对API消费者进行权限控制,以控制API消费者只能访问指定的API实例,参见图5所示,权限控制的过程包括:API消费方向API管理系统发送令牌分配请求,用于请求令牌token,令牌用于标识API消费方的唯一身份,API管理系统会动态更新API管理方的令牌,即分配给API消费者的令牌具有有效期。API消费者向API提供方发送携带分配的令牌的API调用请求,API提供方接收到API调用请求,解析该API调用请求得到令牌,向API管理系统发送携带令牌的鉴权请求,API管理系统校验该令牌正确且在有效期内,向API提供方发送校验通过消息,API提供方接收到校验通过消息后,调用API实例生成调用结果,然后向API消费方发送携带该调用结果的API调用响应。如果校验不通过,API管理系统向API提供方发送校验失败消息,API提供方接收该校验失败消息后向API消费方发送调用失败消息。
在一个或多个可能的实施例中,API管理系统设置熔断配置信息和限流配置信息,将熔断配置信息和限流配置信息通过注册中心下发给API提供方的API管理组件。熔断参数配置信息:API实例的超时最大值和API实例在单位时间内超时的最大次数。API提供方接收来自API消费者的API调用请求,调用请求用于调用目标API实例,API提供方确定目标API实例的执行时间大于超时最大值,且在单位时间内超时次数大于预设的最大次数,则对该目标API实例进行熔断处理。
限流配置信息包括:API消费方在单位时间内的最大调用次数。API提供方接收来自API消费者的API调用请求,调用请求用于调用目标API实例,API提供方确定API消费方在单位时间内的调用次数大于预设的最大调用次数,则对该API消费方进行限流处理。例如,可以设置消费方A,对Test这个API设置限流值为10,即消费方A只能在1秒内最多调用10次。但同时也可以为消费方B,对同样的Test这个API设置限流20的值。这种情况下,消费方A可以调用10次,消费方B可以调用20次。
在一个或多个可能的实施例中,API管理系统基于API消费者订阅的API实例生成JAR包供API消费者使用,生成的过程包括:
根据订阅映射信息确定API消费方订阅的API实例;
根据API提供方为API实例进行分类,基于分类的API实例生成指定开发语言的SDK;
向API消费方发送所述SDK的下载链接。
其中,API管理系统根据订阅映射信息确定API消费方订阅的API实例,根据API提供方为API实例进行分类,对属于同一API提供方的API实例生成Maven工程的Java类,将生成的Java类进行编译生成JAR包,向API消费方发送JAR包的下载链接,API消费方通过该下载链接下载JAR包,基于JAR包生成API调用请求以远程调用API实例。
例如:参见图6所示,API管理系统根据订阅映射信息查询到API消费方已订阅API提供方的API1-1和API1-N和API提供方B的API2-1和API2-N,根据不同的API提供方,生成Maven工程中的Java类A和Java类B,然后将Maven工程中的Java类进行编译生成JAR(JavaArchive,Java归档)包,供API消费方下载。
在一个或多个可能的实施例中,API管理系统记录所有API实例的相关调用日志、并发数、响应速度、吞吐量和异常事件等信息,进行分析并统计生成监控报表,以及发现调用异常时及时通知相关责任人。
具体来说,API提供方的API管理组件监控鉴权、熔断和限流等流程的运行时状态数据,向API管理系统上报该运行时状态数据,API管理系统把运行时状态存储到数据库中并进行分析,分析内容包括:按API实例、时间和用户等维度,对鉴权成功数/失败数、API实例调用成功数/失败数、熔断触发时间、熔断次数和流量进行分析统计,形成监控报表,对不符合审计规范的报告事件,API管理系统自动发送告警通知。本申请可以降低微服务管理复杂度,使微服务更易发布,更方便扩展以及调用更安全,更容易故障排查,减少人工参与,从而有效降低微服务的管理成本。
上述图2详细阐述了API实例的管理方法。相应的本申请实施例的一种装置的结构示意图。
请参见图7,图7是本申请实施例提供的一种装置7的结构示意图,装置7应用于多个服务,该装置7可以包括:处理单元701和收发单元702。
收发单元702,用于接收来自API提供方的API信息;
处理单元701,用于根据所述API信息确定待发布的新版本API实例集合;
所述处理单元701,还用于比较所述新版本API实例集合和当前部署的旧版本API实例集合的差异情况;
所述处理单元701,还用于若所述差异情况为删除所述旧版本API实例集合中的API实例,则判断该删除的API实例是否被订阅,若为是,则禁止发布所述新版本API实例集合,以及通过所述收发单元向所述API提供方发送发布失败消息;
所述处理单元701,还用于若所述差异情况表示所述旧版本API实例集合中的第一API实例更新为所述新版本API实例集合中的第二API实例,判断所述第一API实例是否被订阅,若为是,指示API提供方对所述第一API实例进行副本复制得到第三API实例以及将所述第三API实例添加到所述新版本API实例集合中,以及将所述新版本API实例集合中的第三API实例和所述第二API实例进行关联,关联后发布所述新版本API实例集合,通过所述收发单元向所述API提供方发送发布成功消息;其中,所述第三API实例和所述第二API实例同时运行;或所述第三API实例的有效期结束时,停用所述第三API实例;或在成功发布所述新版本API实例集合时停用所述第三API实例。
在一个或多个实施例中,处理单元301还用于:
根据订阅映射信息查询订阅所述第一API实例的API消费者;
通过收发单元702向所述API消费方发送API变更信息。
在一个或多个实施例中,处理单元301还用于:
通过收发单元702接收来自API消费方的令牌分配请求;
响应于所述令牌分配请求为所述API消费方分配令牌;
通过收发单元702接收来自API提供方的鉴权请求;其中,所述鉴权请求携带所述令牌,所述鉴权请求是基于来自所述API消费方的API调用请求生成的;
解析所述鉴权请求得到令牌,检测所述令牌是否合法;
若为是,向所述API提供方返回校验成功消息。
在一个或多个实施例中,处理单元701还用于:
设置熔断配置信息和限流配置信息;其中,所述熔断配置信息包括API实例的超时最大值和API实例在单位时间内超时的最大次数,所述限流配置信息包括:API消费方在单位时间内的最大调用次数;
通过注册中心将所述熔断配置信息和所述限流配置信息推送给API提供方。
在一个或多个实施例中,处理单元701还用于:
根据订阅映射信息确定API消费方订阅的API实例;
根据API提供方为API实例进行分类,基于分类的API实例生成指定开发语言的SDK;
向API消费方发送所述SDK的下载链接。
在一个或多个实施例中,处理单元301还用于:
统计API提供方的各个API实例的调用日志、并发数、响应速度、吞吐量和异常事件,基于统计结果生成监控报表,以及通过收发单元302向所述API提供方推送所述监控报表。
在一个或多个实施例中,所述API信息为JSON格式。
本申请实施例和图2的方法实施例基于同一构思,其带来的技术效果也相同,具体过程可参照图2的方法实施例的描述,此处不再赘述。
装置7可以是服务器或节点,所述装置7也可以为实现相关功能的现场可编程门阵列(field-programmable gate array,FPGA),专用集成芯片,系统芯片(system on chip,SoC),中央处理器(central processor unit,CPU),网络处理器(networkprocessor,NP),数字信号处理电路,微控制器(micro controller unit,MCU),还可以采用可编程控制器(programmable logic device,PLD)或其他集成芯片。
图8为本申请实施例提供的一种装置结构示意图,以下简称装置8,装置8可以图1的API管理系统中,如图8所示,该装置8包括:存储器802、处理器801和收发器803。
存储器802可以是独立的物理单元,与处理器801和收发器803可以通过总线连接。存储器802、处理器801、收发器803也可以集成在一起,通过硬件实现等。
存储器402用于存储实现以上方法实施例,或者装置实施例各个模块的程序,处理器801调用该程序,执行以上方法实施例的操作。
可选的,装置8还包括输入装置和输出装置,输入装置包括但不限于键盘、鼠标、触摸面板、摄像头和麦克风;输出装置包括但限于显示屏。
通信接口用于收发各种类型的消息,通信接口包括但不限于无线接口或有线接口。
可选地,当上述实施例的API实例的管理方法中的部分或全部通过软件实现时,装置也可以只包括处理器。用于存储程序的存储器位于装置之外,处理器通过电路/电线与存储器连接,用于读取并执行存储器中存储的程序。
处理器可以是中央处理器(central processing unit,CPU),网络处理器(networkprocessor,NP)或者CPU和NP的组合。
处理器还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmablelogic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammablelogic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
存储器可以包括易失性存储器(volatile memory),例如存取存储器(random-access memory,RAM);存储器也可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器还可以包括上述种类的存储器的组合。
本申请实施例还提供了一种计算机存储介质,存储有计算机程序,该计算机程序用于执行上述实施例提供的API实例的管理方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例提供的API实例的管理方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
Claims (10)
1.一种API实例的管理方法,其特征在于,应用于多个服务,所述方法包括:
接收来自API提供方的API信息;
根据所述API信息确定待发布的新版本API实例集合;
比较所述新版本API实例集合和当前部署的旧版本API实例集合的差异情况;
若所述差异情况为删除所述旧版本API实例集合中的API实例,则判断该删除的API实例是否被订阅,若为是,则禁止发布所述新版本API实例集合,以及向所述API提供方发送发布失败消息;
若所述差异情况表示所述旧版本API实例集合中的第一API实例更新为所述新版本API实例集合中的第二API实例,判断所述第一API实例是否被订阅,若为是,指示API提供方对所述第一API实例进行副本复制得到第三API实例以及将所述第三API实例添加到所述新版本API实例集合中,以及将所述新版本API实例集合中的第三API实例和所述第二API实例进行关联,关联后发布所述新版本API实例集合,向所述API提供方发送发布成功消息;其中,所述第三API实例和所述第二API实例同时运行;或所述第三API实例的有效期结束时,停用所述第三API实例;或在成功发布所述新版本API实例集合时停用所述第三API实例。
2.根据权利要求1所述的方法,其特征在于,还包括:
根据订阅映射信息查询订阅所述第一API实例的API消费者;
向所述API消费方发送API变更信息。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
接收来自API消费方的令牌分配请求;
响应于所述令牌分配请求为所述API消费方分配令牌;
接收来自API提供方的鉴权请求;其中,所述鉴权请求携带所述令牌,所述鉴权请求是基于来自所述API消费方的API调用请求生成的;
解析所述鉴权请求得到令牌,检测所述令牌是否合法;
若为是,向所述API提供方返回校验成功消息。
4.根据权利要求3所述的方法,其特征在于,还包括:
设置熔断配置信息和限流配置信息;其中,所述熔断配置信息包括API实例的超时最大值和API实例在单位时间内超时的最大次数,所述限流配置信息包括:API消费方在单位时间内的最大调用次数;
通过注册中心将所述熔断配置信息和所述限流配置信息推送给API提供方。
5.根据权利要求4所述的方法,其特征在于,还包括:
根据订阅映射信息确定API消费方订阅的API实例;
根据API提供方为API实例进行分类,基于分类的API实例生成指定开发语言的SDK;
向API消费方发送所述SDK的下载链接。
6.根据权利要求4或5所述的方法,其特征在于,还包括:
统计API提供方的各个API实例的调用日志、并发数、响应速度、吞吐量和异常事件,基于统计结果生成监控报表,以及向所述API提供方推送所述监控报表。
7.根据权利要求6所述的方法,其特征在于,所述API信息为JSON格式。
8.一种API实例的管理装置,其特征在于,包括:
收发单元,用于接收来自API提供方的API信息;
处理单元,用于根据所述API信息确定待发布的新版本API实例集合;
所述处理单元,还用于比较所述新版本API实例集合和当前部署的旧版本API实例集合的差异情况;
所述处理单元,还用于若所述差异情况为删除所述旧版本API实例集合中的API实例,则判断该删除的API实例是否被订阅,若为是,则禁止发布所述新版本API实例集合,以及通过所述收发单元向所述API提供方发送发布失败消息;
所述处理单元,还用于若所述差异情况表示所述旧版本API实例集合中的第一API实例更新为所述新版本API实例集合中的第二API实例,判断所述第一API实例是否被订阅,若为是,指示所述API提供方对所述第一API实例进行副本复制得到第三API实例以及将所述第三API实例添加到所述新版本API实例集合中,以及将所述新版本API实例集合中的第三API实例和所述第二API实例进行关联,关联后发布所述新版本API实例集合,通过所述收发单元向所述API提供方发送发布成功消息;其中,所述第三API实例和所述第二API实例同时运行;或所述第三API实例的有效期结束时,停用所述第三API实例;或在成功发布所述新版本API实例集合时停用所述第三API实例。
9.一种计算机存储介质,其特征在于,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1~7任意一项的方法步骤。
10.一种电子设备,其特征在于,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1~7任意一项的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110868418.4A CN113590178B (zh) | 2021-07-30 | 2021-07-30 | Api实例的管理方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110868418.4A CN113590178B (zh) | 2021-07-30 | 2021-07-30 | Api实例的管理方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113590178A CN113590178A (zh) | 2021-11-02 |
CN113590178B true CN113590178B (zh) | 2023-06-13 |
Family
ID=78252337
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110868418.4A Active CN113590178B (zh) | 2021-07-30 | 2021-07-30 | Api实例的管理方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113590178B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113918473B (zh) * | 2021-12-13 | 2022-05-17 | 南京大学 | 一种基于Swagger文档的RESTful APIs组合测试方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648716A (zh) * | 2015-10-30 | 2017-05-10 | 北京数码视讯科技股份有限公司 | 一种增量更新方法、服务器及智能卡 |
CN109582329A (zh) * | 2018-09-29 | 2019-04-05 | 阿里巴巴集团控股有限公司 | 数据管理及订阅方法、装置、系统、电子设备及存储介质 |
CN110275731A (zh) * | 2019-06-26 | 2019-09-24 | 中汇信息技术(上海)有限公司 | 信息处理方法、装置、存储介质和电子设备 |
CN111309365A (zh) * | 2020-02-12 | 2020-06-19 | 北京字节跳动网络技术有限公司 | 一种响应访问请求的方法、装置及计算机可读存储介质 |
CN111538519A (zh) * | 2020-04-30 | 2020-08-14 | 深圳前海微众银行股份有限公司 | 一种版本升级方法及装置 |
CN111736875A (zh) * | 2020-06-28 | 2020-10-02 | 深圳前海微众银行股份有限公司 | 版本更新监控方法、装置、设备及计算机存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9485300B2 (en) * | 2012-03-13 | 2016-11-01 | Yahoo! Inc. | Publish-subscribe platform for cloud file distribution |
US10990605B2 (en) * | 2018-02-26 | 2021-04-27 | Servicenow, Inc. | Instance data replication |
-
2021
- 2021-07-30 CN CN202110868418.4A patent/CN113590178B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648716A (zh) * | 2015-10-30 | 2017-05-10 | 北京数码视讯科技股份有限公司 | 一种增量更新方法、服务器及智能卡 |
CN109582329A (zh) * | 2018-09-29 | 2019-04-05 | 阿里巴巴集团控股有限公司 | 数据管理及订阅方法、装置、系统、电子设备及存储介质 |
CN110275731A (zh) * | 2019-06-26 | 2019-09-24 | 中汇信息技术(上海)有限公司 | 信息处理方法、装置、存储介质和电子设备 |
CN111309365A (zh) * | 2020-02-12 | 2020-06-19 | 北京字节跳动网络技术有限公司 | 一种响应访问请求的方法、装置及计算机可读存储介质 |
CN111538519A (zh) * | 2020-04-30 | 2020-08-14 | 深圳前海微众银行股份有限公司 | 一种版本升级方法及装置 |
CN111736875A (zh) * | 2020-06-28 | 2020-10-02 | 深圳前海微众银行股份有限公司 | 版本更新监控方法、装置、设备及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113590178A (zh) | 2021-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10313183B2 (en) | Network function virtualization NFV fault management apparatus, device, and method | |
US8819701B2 (en) | Cloud computing monitoring and management system | |
US8893110B2 (en) | Device management in a network | |
CN110597531B (zh) | 分布式的模块升级方法、装置及存储介质 | |
CN110245031B (zh) | 一种ai服务开放中台及方法 | |
EP3901770A1 (en) | Method and device for instantiating virtualized network function | |
CN111679888A (zh) | 一种代理容器的部署方法及装置 | |
CN109614164B (zh) | 实现插件可配置的方法、装置、设备及可读存储介质 | |
CN112989330A (zh) | 容器的入侵检测方法、装置、电子设备及存储介质 | |
CN113590178B (zh) | Api实例的管理方法、装置、存储介质及电子设备 | |
KR20180037342A (ko) | 어플리케이션 에러 모니터링 및 통계관리 서비스 및 방법 | |
CN111209060A (zh) | 能力开发平台处理方法及装置 | |
US8768327B2 (en) | Feature based management | |
CN111475758A (zh) | 面向新一代电网调度控制系统的应用商店调度方法及系统 | |
CN113553139A (zh) | 容器云环境下的混合多云管理方法、系统、设备及介质 | |
CN110618943B (zh) | 安防服务测试方法、装置、电子设备及可读存储介质 | |
CN110932926B (zh) | 一种容器集群的监控方法、系统及装置 | |
CN114650218A (zh) | 一种数据获取方法、设备、系统及存储介质 | |
CN113760712A (zh) | 一种测试评估方法和装置 | |
CN112714160B (zh) | 设备的指令下发方法、装置和电子设备 | |
CN112988266B (zh) | 一种资源管理方法、装置、电子设备及存储介质 | |
CN115134270B (zh) | 代码监控方法、监控系统、电子设备及存储介质 | |
CN113746690B (zh) | 监控流量数据的方法、装置及计算机可读存储介质 | |
CN111130919B (zh) | 一种接口监控方法、装置、系统及存储介质 | |
CN117472426A (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 |