CN112612452B - 一种api平台实现方法、装置、设备及存储介质 - Google Patents
一种api平台实现方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112612452B CN112612452B CN202011511538.0A CN202011511538A CN112612452B CN 112612452 B CN112612452 B CN 112612452B CN 202011511538 A CN202011511538 A CN 202011511538A CN 112612452 B CN112612452 B CN 112612452B
- Authority
- CN
- China
- Prior art keywords
- definition file
- api
- interface
- generating
- service
- 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
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000013507 mapping Methods 0.000 claims abstract description 10
- 230000004931 aggregating effect Effects 0.000 claims abstract description 9
- 238000004590 computer program Methods 0.000 claims description 23
- 230000002776 aggregation Effects 0.000 claims description 4
- 238000004220 aggregation Methods 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 4
- 238000000605 extraction Methods 0.000 claims description 2
- 238000011161 development Methods 0.000 abstract description 12
- 230000008569 process Effects 0.000 abstract description 11
- 239000008186 active pharmaceutical agent Substances 0.000 description 165
- 239000003795 chemical substances by application Substances 0.000 description 28
- 230000006870 function Effects 0.000 description 14
- 238000007726 management method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 230000006872 improvement Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001360 synchronised 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/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- 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/70—Software maintenance or management
- G06F8/73—Program documentation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Library & Information Science (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种API平台实现方法、装置、设备及存储介质,所述方法包括:根据初始版本的API接口定义文件和预先设置的服务代理配置文件,生成服务端代理;其中,API接口定义文件是根据预先设定的接口代码定义生成,接口代码定义包括:数据类型映射表、元数据和对象定义文件;根据初始版本的API接口定义文件和预设设置的客户端接口定义文件,生成客户端SDK;根据初始版本的API接口定义文件、客户端SDK和服务端代理,将多个微服务聚合生成API平台;通过预先约定的接口代码定义生成API接口定义文件,并调用该文件生成客户端SDK和服务端代理,以聚合微服务形成API平台,能有效简化API定义、发布、调用过程,从而提高API开发调试效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种API平台实现方法、装置、设备及存储介质。
背景技术
随着微服务技术的广泛使用,API接口呈现爆炸式的增长。Swagger目前主流的API文档生成和调试工具,是用于生成、描述、调用和可视化RESTful风格的Web服务,其目标是使客户端和文件系统作为服务器以同样的速度来更新Swagger通过将文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。但在企业级API平台开发过程中,由于API描述规则过于复杂,注释书写内容和代码有一定重复,有时甚至超过接口的代码量,采用现有的API文档生成和调试工具,会降低API开发调试的效率,同时由于现有的API文档生成和调试工具是基于单体微服务,无法形成统一的企业级API门户。
发明内容
针对上述问题,本发明的目的在于提供一种API平台实现方法、装置、设备及存储介质,其能有效简化API定义、发布、调用过程,从而提高API开发调试效率,实现API平台的自动聚合生成。
第一方面,本发明实施例提供了一种API平台实现方法,包括:
根据初始版本的API接口定义文件和预先设置的服务代理配置文件,生成服务端代理;其中,所述API接口定义文件是根据预先设定的接口代码定义生成,所述接口代码定义包括:数据类型映射表、元数据和对象定义文件;
根据初始版本的API接口定义文件和预设设置的客户端接口定义文件,生成客户端SDK;
根据初始版本的API接口定义文件、所述客户端SDK和所述服务端代理,将多个微服务聚合生成API平台。
作为上述方案的改进,所述方法还包括:
响应于所述微服务的更新操作,同步更新本地的API接口定义文件;
根据更新后的API接口定义文件,更新所述客户端SDK和所述服务端代理;
将更新后的客户端SDK和服务端代理发布到所述API平台上。
作为上述方案的改进,所述根据初始版本的API接口定义文件和预先设置的服务代理配置文件,生成服务端代理,包括:
提取初始版本的API接口定义文件中的操作语句的定义内容;其中,所述定义内容指示对应的操作定义;
根据所述定义内容,生成初始版本的服务定义文件;
根据初始版本的服务定义文件和所述服务代理配置文件,生成服务端代理。
作为上述方案的改进,根据初始版本的API接口定义文件和预设设置的客户端接口定义文件,生成客户端SDK,包括:
根据初始版本的API接口定义文件,生成初始版本的多编程语言接口类源代码;
根据所述客户端接口定义文件,生成多编程语言实现类源代码;
对初始版本的API接口定义文件、初始版本的多编程语言接口类源代码、所述客户端接口定义文件以及所述多编程语言实现类源代码进行二进制编译,生成客户端SDK。
作为上述方案的改进,所述方法还包括:
将第三方应用发送的微服务访问请求转发到所述服务端代理,以使得在所述服务端代理对所述微服务访问请求进行响应后,授权所述第三方应用访问所述微服务。
作为上述方案的改进,所述方法还包括:
通过所述服务端代理对所述微服务进行管理操作;其中,所述管理操作包括API接口定义文件的版本控制、权限控制、流量控制。
作为上述方案的改进,所述根据更新后的API接口定义文件,更新所述客户端SDK和所述服务端代理,包括:
提取更新后的API接口定义文件中的操作语句的定义内容,作为待更新定义内容;
根据所述待更新定义内容,生成当前版本的服务定义文件;
采用当前版本的服务定义文件更新所述服务端代理的服务定义文件,以更新所述服务端代理;
根据更新后的API接口定义文件,生成当前版本的多编程语言接口类源代码;
采用更新后的API接口定义文件、当前版本的多编程语言接口类源代码更新所述客户端SDK的API接口定义文件和多编程语言接口类源代码,以更新所述客户端SDK。
第二方面,本发明实施例提供了一种API平台实现装置,包括:
服务端代理生成模块,用于根据初始版本的API接口定义文件和预先设置的服务代理配置文件,生成服务端代理;其中,所述API接口定义文件是根据预先设定的接口代码定义生成,所述接口代码定义包括:数据类型映射表、元数据和对象定义文件;
客户端SDK生成模块,用于根据初始版本的API接口定义文件和预设设置的客户端接口定义文件,生成客户端SDK;
微服务聚合模块,用于根据初始版本的API接口定义文件、所述客户端SDK和所述服务端代理,将多个微服务聚合生成API平台。
第三方面,本发明实施例提供了一种API平台实现设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面中任意一项所述的API平台实现方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如第一方面中任意一项所述的API平台实现方法。
相对于现有技术,本发明实施例的有益效果在于:所述API平台实现方法包括:根据初始版本的API接口定义文件和预先设置的服务代理配置文件,生成服务端代理;其中,所述API接口定义文件是根据预先设定的接口代码定义生成,所述接口代码定义包括:数据类型映射表、元数据和对象定义文件;根据初始版本的API接口定义文件和预设设置的客户端接口定义文件,生成客户端SDK;根据初始版本的API接口定义文件、所述客户端SDK和所述服务端代理,将多个微服务聚合生成API平台。通过预先约定的接口代码定义生成API接口定义文件,并直接调用该文件生成客户端SDK和服务端代理,以聚合微服务形成API平台,其能有效简化API定义、发布、调用过程,从而提高API开发调试效率,同时服务端代理伴随约定的API接口定义文件,自动提供无入侵的API治理功能,使得分散的微服务既可以自治,也可以自动聚合生成API平台。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种API平台实现方法的流程图;
图2是本发明实施例提供的API平台实现的示意图;
图3是本发明实施例提供的客户端SDK生成的示意图;
图4是本发明实施例提供的一种API平台实现装置的示意图;
图5是本发明实施例提供的一种API平台实现设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,其是本发明第一实施例提供的本发明实施例提供了一种API平台实现方法,包括:
S1:根据初始版本的API接口定义文件和预先设置的服务代理配置文件,生成服务端代理;其中,所述API接口定义文件是根据预先设定的接口代码定义生成,所述接口代码定义包括:数据类型映射表、元数据和对象定义文件;
S2:根据初始版本的API接口定义文件和预设设置的客户端接口定义文件,生成客户端SDK;
S3:根据初始版本的API接口定义文件、所述客户端SDK和所述服务端代理,将多个微服务聚合生成API平台。
现代微服务以Java,.NET,PHP,Go等面向对象的编程语言为主,都支持接口的概念,指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。基于此,根据各开发语言(例如Java,.NET,PHP,Go)特点和配置习惯预先设置数据类型映射表、元数据和对象定义文件等接口代码定义,用于约定命名规范,例如:
通过约定的命名规范来表示一个Http API接口:
Path1-Path3:表示URL路径,必须
httpMethod:表示标准Http协议方法,必须
With/Without:表示认证等附带属性,非必须,可以附带在interface名后,或者方法名后,代表不同的作用域
interface Path1Path2Path3[WithOptions]{
PublicReturnType httpMethodEntity[WithOptions](ParameterTypeparameter)
}
本发明施例中,根据面向对象开发语言反射机制获取所述接口代码定义生成符合OpenAPI规范的API接口定义文件,该API接口定义文件可用于文档生成和接口开发调试,可通过直接调用该文件生成客户端SDK(Software Development Kit,软件开发工具包)和服务端代理,以聚合微服务形成API平台,采用API接口定义文件,能减少注释书写内容和代码的重复出现,避免代码超过接口的代码量,有效简化API定义、发布、调用过程,从而提高API开发调试效率,同时服务端代理伴随约定的API接口定义文件,自动提供无入侵的API治理功能,使得分散的微服务既可以自治,也可以自动聚合生成企业级的API平台。
其中,所述服务端代理为服务端SideCar,其主要基于容器技术实现,也可或采用嵌入应用的Web服务器方式实现。相对于现有的分散的微服务需要API网关或者其他微服务治理中心来达到API治理的目的,本发明实施例构造服务器端SideCar并伴随约定的API接口定义文件,可以自动提供无入侵的API治理功能,使得分散的微服务既可以自治,也可以聚合起来形成企业级的API平台,无需额外增设API网关或者其他微服务治理中心,降低了使用成本。在本发明实施例中调用API服务的方式是将HTTP Restful服务转换为客户端编程语言的对象实例直接使用,从而使得客户端对象(即微服务)要能够随着API接口定义文件的版本的更新自动更新,客户端SDK的生成、发布、引用都可以融入持续集成和持续部署过程。
如图2所示,通过符合OpenAPI规范的API接口定义文件,客户端SDK,服务端SideCar,将所有需要聚合的API通过持续集成和部署方式,100%自动生成为一个门户Web站点,提供实时更新的接口文档,版本定义,API调试,API治理功能,并且支持多种开发语言,成为免人工维护的企业级API平台。具体地:将API接口定义文件,客户端SDK的源代码,服务端SideCar的服务代理配置文件以及客户端安装包持续集成和部署到API平台注册服务器,API平台注册服务器按照门户各功能模板文件生成门户Web站点,即API平台。所述客户端安装包可以是客户端二进制包,用于生成微服务等应用程序。
在一种可选的实施例中,所述方法还包括:
响应于所述微服务的更新操作,同步更新本地的API接口定义文件;
根据更新后的API接口定义文件,更新所述客户端SDK和所述服务端代理;
将更新后的客户端SDK和服务端代理发布到所述API平台上。
在本发明实施例中,在微服务发生更新时,将同步更新本地的API接口定义文件的版本,并基于更新后的API接口定义文件更新所述客户端SDK和所述服务端代理,并发布到所述API平台上,实现API平台的自动更新,在这个过程中,开发者和使用者能够以对编程语言代码无入侵的方式协同API管理,可以极大简化API管理的复杂性,提高API相关的交付效率和开发质量。
在一种可选的实施例中,所述根据初始版本的API接口定义文件和预先设置的服务代理配置文件,生成服务端代理,包括:
提取初始版本的API接口定义文件中的操作语句的定义内容;其中,所述定义内容指示对应的操作定义;
根据所述定义内容,生成初始版本的服务定义文件;
根据初始版本的服务定义文件和所述服务代理配置文件,生成服务端代理。
在本发明实施例中,所述操作语句可以是访问操作语句、认证操作语句等,用于指示对应的访问操作、认证操作。所述操作语句以with语句为例给出以下实例:
WithAKSK:附带App认证,通过一定的签名机制和事先分发的ApiKey和ApiSecret对接口访问采取认证
WithoutAKSK:在接口整体需要认证的情况下,单个路径可以匿名访问,不需要认证
WithTrafficControlOver100Qps:最大接受100Qps的并发访问,超过进行限流
WithTrackingRequestBody:将所有访问的请求体进行日志记录
由于With后的选项没有限制,可以根据需要设定任何API控制功能,并且可以附带参数,不需要额外的配置文件对服务端SideCar提出需求。因此,可以通过提取With的定义内容生成服务端SideCar的服务定义文件,并兼容服务代理配置文件生成服务端代理,可以实现API治理功能,从而进行API版本控制,权限控制,流量控制。其中,所述服务代理文件为反向代理配置文件,例如Nginx配置文件。
在一种可选的实施例中,根据初始版本的API接口定义文件和预设设置的客户端接口定义文件,生成客户端SDK,包括:
根据初始版本的API接口定义文件,生成初始版本的多编程语言接口类源代码;
根据所述客户端接口定义文件,生成多编程语言实现类源代码;
对初始版本的API接口定义文件、初始版本的多编程语言接口类源代码、所述客户端接口定义文件以及所述多编程语言实现类源代码进行二进制编译,生成客户端SDK。
在本发明实施例中,如图3所示,所述所述客户端接口定义文件即为客户端interface定义文件。根据客户端对应的编程语言,基于Api接口定义文件生成多编程语言接口类源代码,例如:Java客户端interface定义类、Go客户端interface定义类、PHP客户端interface定义类;根据客户端对应的编程语言,基于客户端interface定义文件生成多编程语言实现类源代码,例如:Java客户端interface实现类、Go客户端interface实现类、PHP客户端interface实现类;然后持续部署过程中,将API接口定义文件、多编程语言接口类源代码、客户端接口定义文件以及多编程语言实现类源代码编译为二进制客户端SDK,并构建发布到构件仓库,使得客户端从构件仓库中引用对应编程语言的客户端SDK作为服务类直接使用。本发明实施例能简化客户端SDK的生成过程,减少生成过程中产生的冗余内容,降低客户端SDK的使用复杂程度。
在一种可选的实施例中,所述方法还包括:
将第三方应用发送的微服务访问请求转发到所述服务端代理,以使得在所述服务端代理对所述微服务访问请求进行响应后,授权所述第三方应用访问所述微服务。
在本发明实施例中,服务端SideCar与API微服务作为整体发布,由服务端SideCar接管API微服务的访问请求。
在一种可选的实施例中,所述方法还包括:
通过所述服务端代理对所述微服务进行管理操作;其中,所述管理操作包括API接口定义文件的版本控制、权限控制、流量控制。
在一种可选的实施例中,所述根据更新后的API接口定义文件,更新所述客户端SDK和所述服务端代理,包括:
提取更新后的API接口定义文件中的操作语句的定义内容,作为待更新定义内容;
根据所述待更新定义内容,生成当前版本的服务定义文件;
采用当前版本的服务定义文件更新所述服务端代理的服务定义文件,以更新所述服务端代理;
根据更新后的API接口定义文件,生成当前版本的多编程语言接口类源代码;
采用更新后的API接口定义文件、当前版本的多编程语言接口类源代码更新所述客户端SDK的API接口定义文件和多编程语言接口类源代码,以更新所述客户端SDK。
相对于现有技术,本发明实施例的有益效果在于:所述API平台实现方法包括:根据初始版本的API接口定义文件和预先设置的服务代理配置文件,生成服务端代理;其中,所述API接口定义文件是根据预先设定的接口代码定义生成,所述接口代码定义包括:数据类型映射表、元数据和对象定义文件;根据初始版本的API接口定义文件和预设设置的客户端接口定义文件,生成客户端SDK;根据初始版本的API接口定义文件、所述客户端SDK和所述服务端代理,将多个微服务聚合生成API平台。通过预先约定的接口代码定义生成API接口定义文件,并直接调用该文件生成客户端SDK和服务端代理,以聚合微服务形成API平台,其能有效简化API定义、发布、调用过程,从而提高API开发调试效率,同时服务端代理伴随约定的API接口定义文件,自动提供无入侵的API治理功能,使得分散的微服务既可以自治,也可以自动聚合生成API平台。
请参阅图4,本发明第二实施例提供了一种API平台实现装置,包括:
服务端代理生成模块1,用于根据初始版本的API接口定义文件和预先设置的服务代理配置文件,生成服务端代理;其中,所述API接口定义文件是根据预先设定的接口代码定义生成,所述接口代码定义包括:数据类型映射表、元数据和对象定义文件;
客户端SDK生成模块2,用于根据初始版本的API接口定义文件和预设设置的客户端接口定义文件,生成客户端SDK;
微服务聚合模块3,用于根据初始版本的API接口定义文件、所述客户端SDK和所述服务端代理,将多个微服务聚合生成API平台。
响应于所述微服务的更新操作,同步更新本地的API接口定义文件;
在一种可选的施例中,所述装置还包括:
第一更新模块,用于响应于所述微服务的更新操作,同步更新本地的API接口定义文件;
第二更新模块,用于根据更新后的API接口定义文件,更新所述客户端SDK和所述服务端代理;
发布模块,用于将更新后的客户端SDK和服务端代理发布到所述API平台上。
在一种可选的施例中,所述服务端代理生成模块1包括:
第一定义内容提取单元,用于提取初始版本的API接口定义文件中的操作语句的定义内容;其中,所述定义内容指示对应的操作定义;
第一服务定义文件生成单元,用于根据所述定义内容,生成初始版本的服务定义文件;
代理生成单元,用于根据初始版本的服务定义文件和所述服务代理配置文件,生成服务端代理。
在一种可选的施例中,所述客户端SDK生成模块2包括:
第一接口类源代码生成单元,用于根据初始版本的API接口定义文件,生成初始版本的多编程语言接口类源代码;
实现类源代码生成单元,用于根据所述客户端接口定义文件,生成多编程语言实现类源代码;
SDK生成单元,用于对初始版本的API接口定义文件、初始版本的多编程语言接口类源代码、所述客户端接口定义文件以及所述多编程语言实现类源代码进行二进制编译,生成客户端SDK。
在一种可选的施例中,所述装置还包括:
请求转发模块,用于将第三方应用发送的微服务访问请求转发到所述服务端代理,以使得在所述服务端代理对所述微服务访问请求进行响应后,授权所述第三方应用访问所述微服务。
在一种可选的施例中,所述装置还包括:
API管理模块,用于通过所述服务端代理对所述微服务进行管理操作;其中,所述管理操作包括API接口定义文件的版本控制、权限控制、流量控制。
在一种可选的施例中,所述第二更新模块包括:
第二定义内容提取单元,用于提取更新后的API接口定义文件中的操作语句的定义内容,作为待更新定义内容;
第二服务定义文件生成单元,用于根据所述待更新定义内容,生成当前版本的服务定义文件;
代理更新单元,用于采用当前版本的服务定义文件更新所述服务端代理的服务定义文件,以更新所述服务端代理;
第二接口类源代码生成单元,用于根据更新后的API接口定义文件,生成当前版本的多编程语言接口类源代码;
SDK更新单元,用于采用更新后的API接口定义文件、当前版本的多编程语言接口类源代码更新所述客户端SDK的API接口定义文件和多编程语言接口类源代码,以更新所述客户端SDK。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
参见图5,是本发明第实施例提供的API平台实现设备的示意图。如图5所示,该API平台实现设备包括:至少一个处理器11,例如CPU,至少一个网络接口14或者其他用户接口13,存储器15,至少一个通信总线12,通信总线12用于实现这些组件之间的连接通信。其中,用户接口13可选的可以包括USB接口以及其他标准接口、有线接口。网络接口14可选的可以包括Wi-Fi接口以及其他无线接口。存储器15可能包含高速RAM存储器,也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器15可选的可以包含至少一个位于远离前述处理器11的存储装置。
在一些实施方式中,存储器15存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作系统151,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务;
程序152。
具体地,处理器11用于调用存储器15中存储的程序152,执行上述实施例所述的API平台实现方法,例如图1所示的步骤S1。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如服务端代理生成模块。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述API平台实现设备中的执行过程。
所述API平台实现设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述API平台实现设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述示意图仅仅是API平台实现设备的示例,并不构成对API平台实现设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。
所称处理器11可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器11是所述API平台实现设备的控制中心,利用各种接口和线路连接整个API平台实现设备的各个部分。
所述存储器15可用于存储所述计算机程序和/或模块,所述处理器11通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述API平台实现设备的各种功能。所述存储器15可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器15可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
其中,所述API平台实现设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
本发明第四实施例提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如第一实施例中任意一项所述的API平台实现方法。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (8)
1.一种API平台实现方法,其特征在于,包括:
根据初始版本的API接口定义文件和预先设置的服务代理配置文件,生成服务端代理;其中,所述API接口定义文件是根据预先设定的接口代码定义生代码定义包括:数据类型映射表、元数据和对象定义文件;
根据初始版本的API接口定义文件和预设设置的客户端接口定义文件,生成客户端SDK;
根据初始版本的API接口定义文件、所述客户端SDK和所述服务端代理,将多个微服务聚合生成API平台;
所述根据初始版本的API接口定义文件和预先设置的服务代理配置文件,生成服务端代理,包括:
提取初始版本的API接口定义文件中的操作语句的定义内容;其中,所述定义内容指示对应的操作定义;
根据所述定义内容,生成初始版本的服务定义文件;
根据初始版本的服务定义文件和所述服务代理配置文件,生成服务端代理;
根据初始版本的API接口定义文件和预设设置的客户端接口定义文件,生成客户端SDK,包括:
根据初始版本的API接口定义文件,生成初始版本的多编程语言接口类源代码;
根据所述客户端接口定义文件,生成多编程语言实现类源代码;
对初始版本的API接口定义文件、初始版本的多编程语言接口类源代码、所述客户端接口定义文件以及所述多编程语言实现类源代码进行二进制编译,生成客户端SDK。
2.如权利要求1所述的API平台实现方法,其特征在于,所述方法还包括:
响应于所述微服务的更新操作,同步更新本地的API接口定义文件;
根据更新后的API接口定义文件,更新所述客户端SDK和所述服务端代理;
将更新后的客户端SDK和服务端代理发布到所述API平台上。
3.如权利要求1所述的API平台实现方法,其特征在于,所述方法还包括:
将第三方应用发送的微服务访问请求转发到所述服务端代理,以使得在所述服务端代理对所述微服务访问请求进行响应后,授权所述第三方应用访问所述微服务。
4.如权利要求1所述的API平台实现方法,其特征在于,所述方法还包括:
通过所述服务端代理对所述微服务进行管理操作;其中,所述管理操作包括API接口定义文件的版本控制、权限控制、流量控制。
5.如权利要求2所述的API平台实现方法,其特征在于,所述根据更新后的API接口定义文件,更新所述客户端SDK和所述服务端代理,包括:
提取更新后的API接口定义文件中的操作语句的定义内容,作为待更新定义内容;
根据所述待更新定义内容,生成当前版本的服务定义文件;
采用当前版本的服务定义文件更新所述服务端代理的服务定义文件,以更新所述服务端代理;
根据更新后的API接口定义文件,生成当前版本的多编程语言接口类源代码;
采用更新后的API接口定义文件、当前版本的多编程语言接口类源代码更新所述客户端SDK的API接口定义文件和多编程语言接口类源代码,以更新所述客户端SDK。
6.一种API平台实现装置,其特征在于,包括:
服务端代理生成模块,用于根据初始版本的API接口定义文件和预先设置的服务代理配置文件,生成服务端代理;其中,所述API接口定义文件是根据预先设定的接口代码定义生成,所述接口代码定义包括:数据类型映射表、元数据和对象定义文件;
客户端SDK生成模块,用于根据初始版本的API接口定义文件和预设设置的客户端接口定义文件,生成客户端SDK;
微服务聚合模块,用于根据初始版本的API接口定义文件、所述客户端SDK和所述服务端代理,将多个微服务聚合生成API平台;
所述服务端代理生成模块包括:
第一定义内容提取单元,用于提取初始版本的API接口定义文件中的操作语句的定义内容;其中,所述定义内容指示对应的操作定义;
第一服务定义文件生成单元,用于根据所述定义内容,生成初始版本的服务定义文件;
代理生成单元,用于根据初始版本的服务定义文件和所述服务代理配置文件,生成服务端代理;
所述客户端SDK生成模块包括:
第一接口类源代码生成单元,用于根据初始版本的API接口定义文件,生成初始版本的多编程语言接口类源代码;
实现类源代码生成单元,用于根据所述客户端接口定义文件,生成多编程语言实现类源代码;
SDK生成单元,用于对初始版本的API接口定义文件、初始版本的多编程语言接口类源代码、所述客户端接口定义文件以及所述多编程语言实现类源代码进行二进制编译,生成客户端SDK。
7.一种API平台实现设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至5中任意一项所述的API平台实现方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求1至5中任意一项所述的API平台实现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011511538.0A CN112612452B (zh) | 2020-12-18 | 2020-12-18 | 一种api平台实现方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011511538.0A CN112612452B (zh) | 2020-12-18 | 2020-12-18 | 一种api平台实现方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112612452A CN112612452A (zh) | 2021-04-06 |
CN112612452B true CN112612452B (zh) | 2023-11-14 |
Family
ID=75243644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011511538.0A Active CN112612452B (zh) | 2020-12-18 | 2020-12-18 | 一种api平台实现方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112612452B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113515263B (zh) * | 2021-04-26 | 2022-06-17 | 中国汽车技术研究中心有限公司 | 工业app机理模型部署方法、装置、设备和可读存储介质 |
CN113485746B (zh) * | 2021-07-28 | 2024-02-06 | 山石网科通信技术股份有限公司 | 应用程序接口文档的生成方法及装置 |
CN113676336B (zh) * | 2021-10-22 | 2022-02-08 | 深圳市明源云采购科技有限公司 | 微服务访问代理方法、设备及存储介质 |
CN114706583A (zh) * | 2022-04-07 | 2022-07-05 | 中国电信股份有限公司 | Web应用生成方法及装置、电子设备及存储介质 |
CN117555528B (zh) * | 2024-01-12 | 2024-03-26 | 成都索贝视频云计算有限公司 | 一种服务化代码框架生成方法、装置、设备及介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591705A (zh) * | 2011-01-17 | 2012-07-18 | 腾讯科技(深圳)有限公司 | 一种开放平台代理访问方法及装置 |
CN103399734A (zh) * | 2013-07-10 | 2013-11-20 | 北京慧点科技股份有限公司 | 生成rest服务和rest实现的方法及对应的设备 |
CN109344063A (zh) * | 2018-09-26 | 2019-02-15 | 深圳竹云科技有限公司 | 一种api接口的自动化测试方法 |
CN110347522A (zh) * | 2019-07-09 | 2019-10-18 | 沈阳欧瑞科技有限公司 | 一种服务端和客户端一体化的实现方法 |
CN110489326A (zh) * | 2019-07-09 | 2019-11-22 | 北京字节跳动网络技术有限公司 | 基于ids的httpapi调试方法装置、介质和设备 |
CN110716743A (zh) * | 2019-09-30 | 2020-01-21 | 上海一竹网络科技有限公司 | 一种适合多方协作开发的聚合api开发方法及系统 |
CN111427613A (zh) * | 2020-03-12 | 2020-07-17 | 北京明略软件系统有限公司 | 一种应用程序接口api管理方法和装置 |
CN111614727A (zh) * | 2020-04-27 | 2020-09-01 | 深圳壹账通智能科技有限公司 | 监管沙盒架构、监管方法、装置及存储介质 |
CN111736844A (zh) * | 2020-06-05 | 2020-10-02 | 国网电力科学研究院有限公司 | 一种数据库云服务标准接口及实现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10678580B2 (en) * | 2017-05-09 | 2020-06-09 | Vmware, Inc. | Methods and apparatus to publish internal commands as an application programming interface in a cloud infrastructure |
-
2020
- 2020-12-18 CN CN202011511538.0A patent/CN112612452B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591705A (zh) * | 2011-01-17 | 2012-07-18 | 腾讯科技(深圳)有限公司 | 一种开放平台代理访问方法及装置 |
CN103399734A (zh) * | 2013-07-10 | 2013-11-20 | 北京慧点科技股份有限公司 | 生成rest服务和rest实现的方法及对应的设备 |
CN109344063A (zh) * | 2018-09-26 | 2019-02-15 | 深圳竹云科技有限公司 | 一种api接口的自动化测试方法 |
CN110347522A (zh) * | 2019-07-09 | 2019-10-18 | 沈阳欧瑞科技有限公司 | 一种服务端和客户端一体化的实现方法 |
CN110489326A (zh) * | 2019-07-09 | 2019-11-22 | 北京字节跳动网络技术有限公司 | 基于ids的httpapi调试方法装置、介质和设备 |
CN110716743A (zh) * | 2019-09-30 | 2020-01-21 | 上海一竹网络科技有限公司 | 一种适合多方协作开发的聚合api开发方法及系统 |
CN111427613A (zh) * | 2020-03-12 | 2020-07-17 | 北京明略软件系统有限公司 | 一种应用程序接口api管理方法和装置 |
CN111614727A (zh) * | 2020-04-27 | 2020-09-01 | 深圳壹账通智能科技有限公司 | 监管沙盒架构、监管方法、装置及存储介质 |
CN111736844A (zh) * | 2020-06-05 | 2020-10-02 | 国网电力科学研究院有限公司 | 一种数据库云服务标准接口及实现方法 |
Non-Patent Citations (4)
Title |
---|
Central audit logging mechanism in personal data web services;Abdulsamet Haşiloğlu等;《2018 6th International Symposium on Digital Forensic and Security (ISDFS)》;全文 * |
基于API网关的微服务组合策略研究;吴润;《数码世界》(第03期);84-86 * |
基于OpenResty平台的API网关系统的设计与实现;温馨等;《信息化研究》;第46卷(第3期);62-68 * |
基于微服务的API管理平台设计与实现;宣程;《中国优秀硕士学位论文全文数据库 (信息科技辑)》(第07期);I138-467 * |
Also Published As
Publication number | Publication date |
---|---|
CN112612452A (zh) | 2021-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112612452B (zh) | 一种api平台实现方法、装置、设备及存储介质 | |
US10705942B1 (en) | Simulated testing of API | |
CN108279932B (zh) | 一种移动终端动态配置用户界面方法和装置 | |
US20200389529A1 (en) | System and method for a unified interface to networked webservices | |
US11157270B2 (en) | Multi-platform pattern-based user interfaces | |
US10521243B2 (en) | Pre/post deployment customization | |
CN105765527A (zh) | 用于定制的软件开发包(sdk)的方法和装置 | |
US20200125336A1 (en) | System and method for enhancing component based development models with auto-wiring | |
CN107239309B (zh) | 补丁生成方法及装置、更新方法、电子设备、存储介质 | |
CN111079047A (zh) | 一种面向web的页面构建系统 | |
CN109460250B (zh) | 一种应用程序的生成方法及设备 | |
CN108279882B (zh) | 框架生成方法、装置、设备及计算机可读介质 | |
CN106997298A (zh) | 一种应用资源获取方法及装置 | |
CN108664294B (zh) | 呈现蒙版图的方法和装置以及电子设备和存储介质 | |
CN110580174B (zh) | 应用组件生成方法、服务器及终端 | |
CN112860247B (zh) | 一种模型组件的自定义生成方法、装置、设备及介质 | |
CN109981719A (zh) | 信息处理方法及其系统、计算机系统和计算机可读介质 | |
CN113688173A (zh) | 一种报表信息处理方法、装置、电子设备及存储介质 | |
CN107193565B (zh) | 跨移动端开发原生app的方法 | |
CN109857374B (zh) | 移动应用的开发方法及装置 | |
CN113542022B (zh) | 组网系统的组网管理方法、装置、终端设备及存储介质 | |
CN113220339A (zh) | 一种页面生成方法和装置 | |
WO2022099913A1 (zh) | 界面配置方法、装置、设备及介质 | |
CN112130842A (zh) | 一种页面生成方法和装置 | |
CN113992622A (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 |