CN107391130B - Api自动管理和sdk、文档自动生成方法 - Google Patents
Api自动管理和sdk、文档自动生成方法 Download PDFInfo
- Publication number
- CN107391130B CN107391130B CN201710554227.4A CN201710554227A CN107391130B CN 107391130 B CN107391130 B CN 107391130B CN 201710554227 A CN201710554227 A CN 201710554227A CN 107391130 B CN107391130 B CN 107391130B
- Authority
- CN
- China
- Prior art keywords
- api
- information
- meta
- service
- state
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种API自动管理方法,服务提供者引入组件,配置接口开放的参数和属性;服务提供者启动后端服务;在发布系统中配置提供服务的地址,从地址载入API元信息,API元信息处于Prepared列表中,API进入Prepared状态;从地址远程加载依赖信息;服务提供者检查拉取到的API的Prepared列表,确认需要发布的API元信息无误后提交,API进入Prototyped状态,等待发布;申请上线发布API,管理员审查无误后批准发布,API进入Published状态,正式对外服务。本发明降低了API发布、管理的人力成本和研发各语言版本SDK,重新编写文档的时间成本,提高技术人员工作效率。
Description
技术领域
本发明涉及互联网技术领域,具体涉及一种API自动管理和SDK、文档自动生成方法。
背景技术
伴随着互联网时代的多元化发展,更多技术人员将精力投入到网络应用的开发上,致力于降低软件以及应用的开发门槛,产品服务化趋势和技术开放趋势日益显著。互联网产品服务化,基础设施能力服务化已经俨然成为大势所趋。然而对于许多中大型应用产品服务化的过程,必然伴随着许多APl(Application Programming Interface,应用程序编程接口,用于技术人员和软件程序交互的一种契约)的集成开放。快速的API版本迭代,大量的新增和消亡的API,管理海量API等,大量API发布后需要封装维护各语言版本的SDK(Software Development Kit,被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合。其目的是封装一些底层复杂的程序逻辑,便于第三方开发者以自身熟悉的方式使用该软件),需要重新编写API文档,这些工作都会带来频繁的维护需求和大量的人力成本。
目前,对于API发布技术的现有方案,为了具备通用性,现有技术通常有如下步骤:
1、部署后端服务。
2、手工编写符合发布规范的配置文件,包含但不仅限于参数、参数类型、服务参数,服务地址等等。
3、上传依赖包以及规范文件。
4、刷新配置文件,加载配置。
5、重新启动服务使新服务配置生效。
6、编写或修改SDK
7、编写新API文档。
这种方法通过手动编写某种符合规范或者约定的配置文件和上传依赖包、规范文件,以供OPEN API(开放API,也称开放平台。所谓OPEN API是服务型网站常见的一种应用,网站的服务商将互联网产品或者服务封装成一系列API开放出去,供第三方开发者使用,这种行为就叫做开放API,所开放的API就被称作OPEN API)识别新发布的API,并需要重启服务刷新网关侧程序信息。
这种方法每次发布后均需重新编写或者修改SDK代码,并发布使用。
但是,上述技术方案存在明显的缺陷,具体如下:
1、开发人员完成服务开发工作后,还需要进行配置工作,重复劳动降低效率。
2、在实际场景中,如果需要批量发布大量的API,需要手动编写大量配置文件,或者进行大量的人工配置,短时间难以实现。
3、该系统与后端交互需要借助特定的通用协议规范,例如json,protobuf方可工作,存在性能瓶颈。
4、如果存在多方API需要接入系统,可能需要进行引入多方依赖,导致频繁的维护升级和随之引发的各类问题。
5、反复更新维护SDK代码,浪费大量人力成本。
6、反复编写修改API文档,浪费大量人力成本。
发明内容
针对现有技术存在的问题,本发明提出了一种API自动管理方法,解决了以下技术问题:
1、提供通用组件,以标准格式编写服务接口,使开放人员简单方便的将配置步骤融入开发过程中,避免重复劳动。
2、拥有自动发现指定服务的API元信息,并实现远程加载的功能,使得发布1个API和发布1000个API并无任何区别,批量发布不再成为时间瓶颈。
3、拥有自动发现API依赖的功能,并实现远程加载,使得服务使用者(使用某种开放技术服务或者互联网产品的角色,可以是开发者,用户或者机构。)无需关心任何类元信息变化,自动变更依赖信息,无需人工维护。
4、无需借助特定外部第三方依赖,完全通过高效字节码序列化/反序列化完成,程序性能极高。
5、完成API自动更新后,会自动生成对应各语言版本SDK和相应API文档。
本发明采用的技术方案是:
一种API自动管理方法,包括:
服务提供者引入组件,配置接口开放的参数和属性;
服务提供者启动后端服务;
在发布系统中配置提供服务的地址,从所述地址远程加载API元信息,API元信息处于Prepared列表中,API进入Prepared状态;
从所述地址远程加载依赖信息;
服务提供者检查拉取到的API的Prepared列表,确认需要发布的API元信息无误后提交,API进入Prototyped状态,等待发布;
申请上线发布API,管理员审查无误后批准发布,API进入Published状态,正式对外服务。
进一步地,所述API自动管理方法还包括:申请下线API,API进入Deprecated状态,API停止服务并下线。
进一步地,所述API自动管理方法还包括:
禁用API元信息,关闭API服务功能,API进入Blocked状态,限制API访问;或者解禁API元信息,重新开放API服务功能,API进入Published状态,正式对外服务。
进一步地,如果API进入Blocked状态,申请下线API,API进入Deprecated状态,API停止服务并下线。
进一步地,所述服务提供者启动后端服务时,ScanUtil模块启动,扫描本地所有带标记的接口,组装API元信息,并收集依赖信息,分别存储于Dependency Provider和APIProvider。
进一步地API进入Prepared状态后,OPEN API通过API Fetcher向后端服务远程请求API元信息,并交由API Dealer处理解析,然后重载存储于API Store中。
一种SDK自动生成方法,存储于API Store中的API元信息,由SDKMaker抓取类元信息,自动生成各版本的SDK。
进一步地,所述SDK为C#、Java、Python或者C++。
一种文档自动生成方法,存储于API Store中的API元信息,由Doc Maker抓取类元信息,自动生成文档。
进一步地,所述文档为接口名、参数名、参数类型、接口描述、超时时间、指向地址、负载均衡策略、同步异步或者调用方式。
本发明的有益效果在于,降低API发布、管理的人力成本和研发各语言版本SDK,重新编写文档的时间成本,提高技术人员工作效率。
附图说明
图1是本发明API状态流转图。
图2是本发明流程泳道图。
图3是本发明系统结构图。
具体实施方式
本发明基于Java技术实现,适用于使用Java编写的任意系统及服务,涉及互联网信息技术领域,特别是各互联网开放或者开源技术服务平台,例如WSO2(WSO2是一个领先的开源SOA解决方案提供者)等。下文中,结合附图和实施例对本发明作进一步阐述。
图1是本发明API状态流转图,其中API状态定义如下:
Prepared(准备):新建API处于Prepare List(列表)中,服务提供者(将某种互联网产品或者技术服务,以接口形式开放出来,提供给其他开发人员或者用户使用的人或者机构。此角色通常位于后端服务端。)进行信息确认。
Prototyped(原型):确认提交,进入Prototyped状态,等待发布。
Published(发布):服务提供者测试通过,网关通过审核的API进入Published状态,对外提供服务。
Deprecated(否决):被标示为Deprecated的API,将会被停止服务并下线。
Blocked(访问限制):API访问被限制,该状态主要起到保护服务的目的。
API操作定义如下:
Confirm:确认需要发布的API信息。
Publish:上线,申请发布状态。
Unpublish:申请下线API。
Block:禁用API信息,关闭其服务功能。
Unblock:解禁API信息,重新开放其功能。
图2是本发明流程泳道图,具体如下:
1、服务提供者引入组件,在代码中以Annotation(注释)形式,配置接口开放的参数和属性。
2、服务提供者启动后端服务。
3、在发布系统中配置提供服务的地址,从该地址远程加载API数据,此时API状态为Prepared。
4、从该地址远程加载依赖信息。
5、服务提供者在系统中检查拉取到的API的Prepared列表,确定自己需要发布的信息无误后提交,此时API处于Prototyped状态。
6、管理员(负责审查、审阅API开放是否合理、正确的审批人员,可以和服务提供者、服务使用者角色重合。)审查无误后批准发布,此时API处于Published状态,正式对外服务。
图3是本发明系统结构图,具体如下:
1、服务(service)启动时,即服务提供者启动后端服务时,ScanUtil(扫描功能)模块启动,负责扫描本地所有带有标记的接口,按照规范组装API元信息,并收集相关依赖信息,分别存储于Dependency Provider(依赖提供者)和API Provider(API提供者)。
2、服务侧准备完成后,OPEN API侧通过API Fetcher(API访问)向后端服务远程请求API元信息,并交由API Dealer(API处理)处理解析,然后重载存储于API Store(API存储)中,以供系统使用。
3、存储于API Store中的API信息,由SDK Maker(SDK生成)抓取类元信息,自动生成各版本SDK,包括但不仅限于C#,Java,Python,C++等程序语言。
4、存储于API Store中的API信息,由Doc Maker(文档生成)负责抓取类元信息,自动生成文档,包含内容:接口名,参数名,参数类型,接口描述,超时时间,指向地址,负载均衡策略,同步异步,调用方式等。
本发明中API信息的定义格式包含不限于swagger格式,json格式,xml格式,以及其他文本格式。
本发明远程加载的方式包含不限于RPC方式,RMI方式,以及其他基于TCP的方式。
本发明优选在Java语言环境。
本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。
Claims (10)
1.一种API自动管理方法,其特征在于,包括:
服务提供者引入组件,配置接口开放的参数和属性;
服务提供者启动后端服务;
在发布系统中配置提供服务的地址,从所述地址远程加载API元信息,API元信息处于Prepared列表中,API进入Prepared状态;
从所述地址远程加载依赖信息;
服务提供者检查拉取到的API的Prepared列表,确认需要发布的API元信息无误后提交,API进入Prototyped状态,等待发布;
申请上线发布API,管理员审查无误后批准发布,API进入Published状态,正式对外服务。
2.如权利要求1所述的一种API自动管理方法,其特征在于,还包括:
申请下线API,API进入Deprecated状态,API停止服务并下线。
3.如权利要求1所述的一种API自动管理方法,其特征在于,还包括:
禁用API元信息,关闭API服务功能,API进入Blocked状态,限制API访问;或者解禁API元信息,重新开放API服务功能,API进入Published状态,正式对外服务。
4.如权利要求3所述的一种API自动管理方法,其特征在于,如果API进入Blocked状态,申请下线API,API进入Deprecated状态,API停止服务并下线。
5.如权利要求1所述的一种API自动管理方法,其特征在于,所述服务提供者启动后端服务时,ScanUtil模块启动,扫描本地所有带标记的接口,组装API元信息,并收集依赖类元信息,分别存储依赖类元信息于Dependency Provider,存储API元信息于API Provider。
6.如权利要求5所述的一种API自动管理方法,其特征在于,API进入Prepared状态后,OPEN API通过API Fetcher向后端服务远程请求API元信息,并交由APIDealer处理解析,然后重载存储于API Store中。
7.一种SDK自动生成方法,其特征在于,包括如权利要求6所述的一种API自动管理方法,存储于API Store中的API元信息,由SDK Maker抓取类元信息,自动生成各版本的SDK。
8.如权利要求7所述的一种SDK自动生成方法,其特征在于,所述生成SDK的编程语言包括C#、Java、Python、PHP或者C++。
9.一种文档自动生成方法,其特征在于,包括如权利要求6所述的一种API自动管理方法,存储于API Store中的API元信息,由Doc Maker抓取类元信息,自动生成文本格式文档。
10.如权利要求9所述的一种文档自动生成方法,其特征在于,所述文档包括接口名、参数名、参数类型、接口描述、超时时间、指向地址、负载均衡策略、同步异步和调用方式之一种或几种。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710554227.4A CN107391130B (zh) | 2017-07-07 | 2017-07-07 | Api自动管理和sdk、文档自动生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710554227.4A CN107391130B (zh) | 2017-07-07 | 2017-07-07 | Api自动管理和sdk、文档自动生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107391130A CN107391130A (zh) | 2017-11-24 |
CN107391130B true CN107391130B (zh) | 2020-05-05 |
Family
ID=60334213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710554227.4A Active CN107391130B (zh) | 2017-07-07 | 2017-07-07 | Api自动管理和sdk、文档自动生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107391130B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107967143B (zh) * | 2017-12-14 | 2021-07-09 | 泰康保险集团股份有限公司 | 获取客户端应用程序源代码的更新指示信息的方法、装置和系统 |
CN111124474B (zh) * | 2018-10-31 | 2022-02-15 | 北京数聚鑫云信息技术有限公司 | 一种api版本控制方法及装置 |
CN109766083A (zh) * | 2018-12-27 | 2019-05-17 | 浪潮软件集团有限公司 | 一种使用java语言调用fabric区块链网络上链码的实现方法 |
CN112612461B (zh) * | 2020-12-28 | 2023-07-25 | 浪潮通用软件有限公司 | 一种erp系统中统一管理和发布安全api接口的方法 |
CN112835561A (zh) * | 2021-03-09 | 2021-05-25 | 吉林省裕林信息科技有限公司 | 快速生成api服务接口的方法、开放平台、终端、介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103841134A (zh) * | 2012-11-22 | 2014-06-04 | 阿里巴巴集团控股有限公司 | 基于api发送、接收信息的方法、装置及系统 |
CN104375826A (zh) * | 2014-10-11 | 2015-02-25 | 北京中搜网络技术股份有限公司 | 一种高可用的微博采集平台及其方法 |
CN105718251A (zh) * | 2014-12-03 | 2016-06-29 | 苏宁云商集团股份有限公司 | 多语言sdk自动化实现方法及系统 |
CN106155651A (zh) * | 2015-03-31 | 2016-11-23 | 广州四三九九信息科技有限公司 | 应用程序版本的自动化发布及更新的方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10496942B2 (en) * | 2013-02-28 | 2019-12-03 | P800X, Llc | Method and system for automated project management of excavation requests |
-
2017
- 2017-07-07 CN CN201710554227.4A patent/CN107391130B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103841134A (zh) * | 2012-11-22 | 2014-06-04 | 阿里巴巴集团控股有限公司 | 基于api发送、接收信息的方法、装置及系统 |
CN104375826A (zh) * | 2014-10-11 | 2015-02-25 | 北京中搜网络技术股份有限公司 | 一种高可用的微博采集平台及其方法 |
CN105718251A (zh) * | 2014-12-03 | 2016-06-29 | 苏宁云商集团股份有限公司 | 多语言sdk自动化实现方法及系统 |
CN106155651A (zh) * | 2015-03-31 | 2016-11-23 | 广州四三九九信息科技有限公司 | 应用程序版本的自动化发布及更新的方法和系统 |
Non-Patent Citations (1)
Title |
---|
API Manager主要概念介绍;下载要号真麻烦;《百度文库》;20161103;1-17 * |
Also Published As
Publication number | Publication date |
---|---|
CN107391130A (zh) | 2017-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391130B (zh) | Api自动管理和sdk、文档自动生成方法 | |
US8549490B2 (en) | Static code analysis for packaged application customization | |
US11667033B2 (en) | Systems and methods for robotic process automation | |
CN102413022B (zh) | 一种应用调试方法和系统 | |
US20060265469A1 (en) | XML based scripting framework, and methods of providing automated interactions with remote systems | |
CN109643252B (zh) | 中间件接口和中间件接口生成器 | |
WO2018036342A1 (zh) | 基于csar的模型文件的可视化设计方法及装置 | |
US20150378691A1 (en) | Rest service source code generation | |
US20150220308A1 (en) | Model-based development | |
US20080065994A1 (en) | Systems and methods for adapting service interface behaviors | |
US8386608B1 (en) | Service scripting framework | |
CN101727475B (zh) | 一种获取数据库访问过程的方法、装置及系统 | |
US9507839B2 (en) | Method for determining a supported connectivity between applications | |
CN112506492B (zh) | 一种支持动态场景配置的可视化埋点方法 | |
CN117093286B (zh) | 插件生成方法、装置、设备及计算机可读存储介质 | |
CN110716720A (zh) | 一种实现应用热部署的方法和装置 | |
US20170249170A1 (en) | Home system establishing method | |
US9836282B2 (en) | Separation of concerns between information technology services models | |
US8392298B2 (en) | Invoice adjustment data object for a common data object format | |
CN112035270A (zh) | 接口适配方法、系统、装置、计算机可读介质及电子设备 | |
CN111913721B (zh) | 自动化部署方法、装置、设备及存储介质 | |
US11803786B2 (en) | Enterprise integration platform | |
US8522256B2 (en) | Hosting non-messaging workflows in a messaging host | |
Srinivasmurthy et al. | Web2exchange: A model-based service transformation and integration environment | |
US20070214419A1 (en) | Integrated service creation and execution platforms for the converged networks |
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 | ||
CP02 | Change in the address of a patent holder |
Address after: 200438 9 / F, 10 / F, 11 / F, 12 / F, 38 Lane 1688, Guoquan North Road, Yangpu District, Shanghai Patentee after: QIANXUN SPATIAL INTELLIGENCE Inc. Address before: Room j165, 1st floor, building 64, 1436 Jungong Road, Yangpu District, Shanghai, 200433 Patentee before: QIANXUN SPATIAL INTELLIGENCE Inc. |
|
CP02 | Change in the address of a patent holder |