CN112035282B - 应用于云平台的api管理方法、装置、设备以及存储介质 - Google Patents

应用于云平台的api管理方法、装置、设备以及存储介质 Download PDF

Info

Publication number
CN112035282B
CN112035282B CN202010903150.9A CN202010903150A CN112035282B CN 112035282 B CN112035282 B CN 112035282B CN 202010903150 A CN202010903150 A CN 202010903150A CN 112035282 B CN112035282 B CN 112035282B
Authority
CN
China
Prior art keywords
token
api
request
user terminal
page
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
Application number
CN202010903150.9A
Other languages
English (en)
Other versions
CN112035282A (zh
Inventor
闫涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202010903150.9A priority Critical patent/CN112035282B/zh
Publication of CN112035282A publication Critical patent/CN112035282A/zh
Application granted granted Critical
Publication of CN112035282B publication Critical patent/CN112035282B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例公开了应用于云平台的API管理方法、装置、设备以及存储介质,涉及互联网技术领域。该应用于云平台的API管理方法的一具体实施方式包括:接收到用户终端发送的API调用请求,所述API调用请求包含请求参数和令牌,其中,所述令牌的类别包括真实调用API的令牌、模拟调用API的令牌;确定所述令牌的类别,若所述令牌为模拟调用API的令牌,返回模拟的响应参数,其中,所述用户终端在预定页面调用API时,所述用户终端的API调用请求携带的令牌的类别默认为模拟调用API的令牌,从而实现在页面操作即可模拟调用对应的API,降低对云平台中的云资源人工误操作风险。

Description

应用于云平台的API管理方法、装置、设备以及存储介质
技术领域
本申请涉及计算机技术领域,具体涉及互联网技术领域,尤其涉及应用于云平台的API管理方法、装置、设备以及存储介质。
背景技术
私有云统一运维平台是私有云客户对私有云资产、IaaS资源、PaaS产品进行运维和管理的操作平台,目前已经具备完善的运维能力。私有云客户为了解决自己对私有云资产、IaaS资源、PaaS产品的运维需求或获取运维数据,需要调用对应的运维应用程序接口(Application Programming Interface,API),以完成运维操作、获取对应的运维数据。
现有的API管理系统对于调用请求只有权限点管理,客户需要根据产品的APP文档,申请完整的对应权限的令牌。并且,现有的API管理系统对运维API的调用均是真实操作,等同于在私有云运维管理平台上进行真实的操作。
发明内容
为了解决上述背景技术部分提到的一个或多个技术问题,本申请实施例提供了应用于云平台的API管理方法、装置、设备以及存储介质。
第一方面,本申请实施例提供了一种应用于云平台的API管理方法,包括:接收到用户终端发送的API调用请求,所述API调用请求包含请求参数和令牌,其中,所述令牌的类别包括真实调用API的令牌、模拟调用API的令牌;确定所述令牌的类别,若所述令牌为模拟调用API的令牌,返回模拟的响应参数,其中,所述用户终端在预定页面调用API时,所述用户终端的API调用请求携带的令牌的类别默认为模拟调用API的令牌。
第二方面,本申请实施例提供了一种对SDK调用请求进行加密的方法,其中,所述SDK能够执行如第一方面任一实现方式描述的方法,所述加密的方法包括:基于Swagger-codegen,对SDK调用请求中的请求参数进行签名。
第三方面,本申请实施例提供了一种生成SDK的方法,其中,所述SDK能够执行如第一方面任一实现方式描述的方法,所述方法包括:采用Springfox Swagger模块对SpringBoot项目生成JSON格式的描述文件;编写对应计算机程序编程语言的JSON文件,执行codegen。
第四方面,本申请实施例提供了应用于云平台的API管理装置,包括:接收模块,被配置为接收到用户终端发送的API调用请求,所述API调用请求包含请求参数和令牌,其中,所述令牌的类别包括真实调用API的令牌、模拟调用API的令牌;模拟响应模块,被配置为确定所述令牌的类别,若所述令牌为模拟调用API的令牌,返回模拟的响应参数,其中,所述用户终端在预定页面调用API时,所述用户终端的API调用请求携带的令牌的类别默认为模拟调用API的令牌。
第五方面,本申请实施例提供了一种对SDK调用请求进行加密的装置,其中,所述SDK被配置为包括如第二方面任一实现方式描述的装置,所述加密的装置包括:签名模块,被配置为基于Swagger-codegen,对SDK调用请求中的请求参数进行签名。
第六方面,本申请实施例提供了一种对生成SDK的装置,其中,所述SDK被配置为包括第二方面任一实现方式描述的装置,所述装置包括:描述文件生成模块,被配置为采用Springfox Swagger模块对Spring Boot项目生成JSON格式的描述文件;SDK生成模块,被配置为编写对应计算机程序编程语言的JSON文件,执行codegen。
第七方面,本申请实施例提出了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如第一方面中任一实现方式描述的方法。
第八方面,本申请实施例提出了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行如第一方面中任一实现方式描述的方法。
本申请实施例提供的应用于云平台的API管理方法、装置、设备以及存储介质,首先接收到用户终端发送的API调用请求,所述API调用请求包含请求参数和令牌,其中,所述令牌的类别包括真实调用API的令牌、模拟调用API的令牌;之后确定所述令牌的类别,若所述令牌为模拟调用API的令牌,返回模拟的响应参数,其中,所述用户终端在预定页面调用API时,所述用户终端的API调用请求携带的令牌的类别默认为模拟调用API的令牌,从而实现在页面操作即可模拟调用对应的API,降低对云平台中的云资源人工误操作风险。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显。附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本申请可以应用于其中的示例性系统架构图;
图2是根据本申请的应用于云平台的API管理方法的一个实施例的流程示意图;
图3是根据本申请的应用于云平台的API管理方法的一个实施例的应用场景示意图;
图4是根据本申请实施例提供的SDK来调用业务系统的一个实施例的应用场景示意图;
图5是根据本申请的应用于云平台的API管理装置的一个实施例的结构示意图;
图6是用来实现本申请实施例的应用于云平台的API管理方法的电子设备的框图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的应用于云平台的API管理方法或应用于云平台的API管理装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、网络102以及服务器103。网络102用以在终端设备101和服务器103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
终端设备101可以通过网络102与服务器103交互。终端设备101中可以发送API调用请求,包括但不限于用户终端等等。
服务器103可以提供各种服务,例如服务器103可以对从终端设备101获取到的API调用请求进行分析等处理,生成处理结果(例如确定API调用请求中的令牌的类别)。
需要说明的是,服务器103可以是硬件,也可以是软件。当服务器103为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器103为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。
需要说明的是,本申请实施例所提供的应用于云平台的API管理方法一般由服务器103执行,相应地,应用于云平台的API管理装置一般设置于服务器103中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的应用于云平台的API管理方法的一个实施例的流程200。该应用于云平台的API管理方法,包括以下步骤:
步骤201,接收到用户终端发送的API调用请求。
在本实施例中,应用于云平台的API管理方法的执行主体(例如图1所示的服务器103)可以接收到用户终端发送的API调用请求。其中,API调用请求包含请求参数和令牌。API是一组定义、程序及协议的集合,通过API实现计算机软件之间的相互通信。API的一个主要功能是提供通用功能集。用户终端通过调用API对应用程序进行开发,可以减轻编程任务。API同时也是一种中间件,为各种不同平台提供数据共享。用户终端若要调用API,需要获得API的接口描述信息。Swagger是一种API测试和管理工具,其提供了一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务,通过Swagger衍生出来的一系列项目和工具,可以做到生成各种格式的API接口文档。用户终端可以根据API接口文档生成API调用请求。通常,API接口文档包括API的基本调用信息参数、API的请求参数、API的响应参数等。示例性地,API的基本调用信息参数包括但不限于请求URL、路径参数、请求方法等等;API的请求参数包括但不限于请求头、请求体等;API的响应参数包括但不限于响应头和响应体。
用户终端首次发出登录请求,需要带着用户名和密码到服务器(例如图1所示的服务器103)经行验证,服务器验证成功就生成一个令牌返回给用户终端,用户终端将令牌存储到cookie中,服务端将令牌存储到redis中。后续用户终端的每次调用请求都必须携带令牌,放在调用请求中的请求参数中,服务端接收到调用请求首先校验是否携带令牌,以及令牌是否和redis中的匹配,若不存在或不匹配直接拦截返回错误信息。
在本实施例中,令牌的类别包括真实调用API的令牌和模拟调用API的令牌。其中,本实施例对令牌进行了区分,包括真实调用的令牌和模拟调用的令牌,真实调用的令牌会产生真实调用的效果,模拟调用的令牌返回的结果与真实调用的令牌一样,但不会产生真实的调用效果。例如,对于调用云平台的运维API,真实调用的令牌会产生虚机实例的删除、关机的调用效果,模拟调用的令牌虽然返回的结果与真实调用的令牌一样,但不会真的将虚机实例删除、关机。
作为本实施例中对令牌进行区分的一种可选的实施方式,可以在开源软件swagger的基础之上,模拟API的调用请求。例如,用户在swagger UI页面调用API时,默认都是模拟调用的令牌;用户在申请令牌的页面自行申请出的令牌是真实调用API的令牌。
在本实施例中,通过对令牌进行区分,可以保证云平台的稳定性,防止误操作。
步骤202,确定令牌的类别。
在本实施例中,上述执行主体可以对API调用请求中的令牌进行鉴别。若鉴别出令牌为模拟调用的令牌,则执行步骤203;若鉴别出令牌为真实调动的令牌,则执行步骤204。示例性地,根据模拟调用的请求参数生成模拟调用的令牌,并将模拟调用的令牌存入请求参数中的请求头中,上述执行主体判断请求参数中的请求头中是否有模拟调用的令牌,若存在则执行步骤203;根据真实调用的请求参数生成真实调用的令牌,并将真实调用的令牌存入请求参数中的请求头中,上述执行主体判断请求参数中的请求头中是否有真实调用的令牌,若存在则执行步骤204。
在本实施例的一些可选的实施方式中,本申请实施例的应用于云平台的API管理方法应用于API管理页面。其中,API管理页面包括预定页面和申请令牌的页面,用户终端在预定页面调用API时,其API调用请求中携带的是模拟调用API的令牌;用户终端在申请令牌的页面调用API时,其API调用请求中携带的是真实调用API的令牌。示例性地,预定页面可以是swagger UI页面。用户终端在对应的API管理页面可以直接调用API,实现在页面操作即可模拟或者真实调用对应的API,用户所见即所得。
步骤203,若令牌为模拟调用API的令牌,返回模拟的响应参数。
在本实施例中,上述执行主体可以返回模拟的响应参数。其中,当用户从页面调用模拟调用的API接口时,上述执行主体可以提供该模拟调用接口的响应参数,例如包括响应头和响应体。具体地,上述执行主体可以确定模拟接口的返回值、数据单位等。示例性地,在用户调用云平台模拟调用的运维API接口时,上述执行主体可以提供云平台的模拟对象(mock),用户可以基于该模拟对象实现对云平台中的云资源或产品的模拟运维操作。
作为本实例中的从页面调用模拟调用的API接口的一种可选的实现方式,在开源软件swagger的基础之上,采用Swagger Inspector模块,实现用户在页面模拟调用API接口。采用Springfox Swagger模块,可以对Spring Boot项目直接生成JSON格式的接口描述文件,从而实现提供默认的请求参数,并基于默认的请求参数提供云平台的模拟对象的响应参数。
与现有技术相比,本申请实施例可以实现在页面操作即可模拟或者真实调用对应的云平台运维API,降低对云平台中的云资源人工运维误操作风险。
根据本申请的又一实施例,还包括如下步骤:确定令牌的类别,若令牌为真实调用API的令牌,返回真实的响应参数。
在本实施例中,若鉴别出来的令牌为真实调用的令牌,上述主体返回真实的响应参数,并将真实的响应参数发送至业务逻辑接口。其中,业务逻辑接口用于用户访问业务系统,例如,对云资源或产品进行运维和管理的平台业务系统。业务逻辑接口接收到真实的响应参数后,将返回真实的调用响应。示例性地,用户可以查看对云平台的运维业务系统真实的调用效果,例如重启对应的实例等。
在本实施例的一些可选的实施方式中,用户终端可以将在申请令牌页面申请出的令牌替换到预定页面,用户终端在预定页面调用API时,返回真实的响应参数。具体地,用户在基于API进行二次开发时,可以先在预定页面模拟调用API进行开发,待开发完成后可以用在申请令牌页面申请出的真实调用API的令牌替换在预定页面的模拟调用API的令牌,从而实现真实调用API的效果,避免了用户在API的基础上进行二次开发时需要自行申请令牌和构建请求体才能知道对应的API响应体的问题。
为了便于理解,图3示出了根据本申请实施例的应用于云平台的API管理方法的一个实施例的应用场景示意图。
如图3所示,用户终端发送带着模拟令牌(模拟调用API的令牌)的API调用请求至鉴权网关。其中,鉴权网关采用的是令牌鉴权机制。具体地,鉴权网关首先校验API调用请求中是否携带令牌(此处不会对令牌作真实调用和虚拟调用的分区),以及令牌是否和redis中的匹配,若不存在或不匹配直接拦截返回错误信息。若鉴权通过,则将带着模拟令牌的API调用请求传给API管理页面,其中,API管理页面被配置为执行本申请实施例的应用于云平台的API管理方法。API管理页面确定出API调用请求携带的是模拟令牌后,构建业务系统的模拟对象(mock)数据,并将模拟数据通过鉴权网关返回至用户终端。
继续参考图3,用户终端发送带着真实令牌(真实调用API的令牌)的API调用请求至鉴权网关。同样,鉴权网关首先校验API调用请求中是否携带令牌(此处不会对令牌作真实调用和虚拟调用的分区),以及令牌是否和redis中的匹配,若不存在或不匹配直接拦截返回错误信息。若鉴权通过,则将带着真实令牌的API调用请求传给API管理页面,其中,API管理页面被配置为执行本申请实施例的应用于云平台的API管理方法。API管理页面确定出API调用请求携带的是真实令牌后,其将API调用请求传给业务系统,例如可以传给业务系统中的业务逻辑接口。响应于业务系统接收到API调用请求,业务系统通过API管理页面、鉴权网关返回至用户终端真实的API调用响应。
本申请实施例还提供一种对SDK调用请求进行加密的方法,其中,SDK执行上述任一实施例的应用于云平台的API管理方法。本申请实施例的加密的方法包括:基于Swagger-codegen,对SDK调用请求中的请求参数进行签名。示例性地,可以对SDK调用请求中的请求URL进行签名。优选地,可以采用云平台的AK/SK认证方式对SDK调用请求进行加密。AccessKey Id(AK)用于标示用户,Secret Access Key(SK)是用户用于加密认证字符串和云平台用来验证认证字符串的密钥,其中SK必须保密,AK/SK原理使用对称加解密。Swaggercodegen是一个开源的代码生成器,根据Swagger定义的RESTful API可以自动建立服务端和用户终端的连接。Swagger Codegen可以支持扩展开发,对请求URL进行签名。
本申请实施例还提供一种生成SDK的方法,其中,SDK执行上述任一实施例的应用于云平台的API管理方法。该方法包括:采用Springfox Swagger模块对Spring Boot项目生成JSON格式的描述文件;编写对应计算机程序编程语言的JSON文件,执行codegen。SDK即软件开发工具包,这里的SDK是为了方便程序开发者集成本申请实施例提供的应用于云平台的API管理方法。Swagger Codegen可以支持扩展开发,程序开发者只要编写或更新对应计算机程序编程语言的JSON文件,并执行codegen,就会生成多种语言的SDK,包括但不限于java、golang、c++、python等。本申请实施例提供的SDK的生成方式比较简单,程序开发者只需要维护一套JSON文件,就可以生成全部语言的SDK,从而提高了被集成的能力。
继续参考图4,其示出了根据本申请实施例提供的SDK来调用业务系统的一个实施例的应用场景示意图。
如图4所示,用户向鉴权网关发送SDK调用请求,这里的SDK调用请求可以采用根据本申请实施例提供的对SDK调用请求进行加密的方法。鉴权网关采用的是AK/SK认证机制,鉴权网关根据用户发送的AK查找数据库得到对应的SK,之后使用同样的加密算法将SDK调用请求内容和SK一起计算签名(signature),最后对比用户发送的签名和鉴权网关计算的签名,两者相同则认证通过,否则失败。鉴权网关鉴权通过后,会将SDK调用请求传给业务系统的业务逻辑接口,之后业务系统返回响应体,调用成功。
进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种应用于云平台的API管理装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例的应用于云平台的API管理装置500可以包括:接收模块501、模拟响应模块502。其中,接收模块501,被配置为接收到用户终端发送的API调用请求,所述API调用请求包含请求参数和令牌,其中,所述令牌的类别包括真实调用API的令牌、模拟调用API的令牌;模拟响应模块502,被配置为确定所述令牌的类别,若所述令牌为模拟调用API的令牌,返回模拟的响应参数,其中,所述用户终端在预定页面调用API时,所述用户终端的API调用请求携带的令牌的类别默认为模拟调用API的令牌。
在本实施例中,应用于云平台的API管理装置500中:接收模块501、模拟响应模块502的具体处理及其所带来的技术效果可分别参考图2对应实施例中的步骤201-203的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,该装置还包括:真实响应模块,被配置为确定所述令牌的类别,若所述令牌为真实调用API的令牌,返回真实的响应参数,其中,所述用户终端在申请令牌页面申请出的令牌为真实调用API的令牌。
在本实施例的一些可选的实现方式中,用户终端在申请令牌页面申请出的令牌为真实调用API的令牌。
在本实施例的一些可选的实现方式中,用户终端将在申请令牌页面申请出的令牌替换到所述预定页面,所述用户终端在预定页面调用API时,返回真实的响应参数。
在本实施例的一些可选的实现方式中,预定页面为Swagger UI页面。
在本实施例的一些可选的实现方式中,该装置还包括:请求参数确定模块,被配置为根据API描述文件确定所述API调用请求中的请求参数,其中,获取所述API描述文件的方法包括:采用Springfox Swagger模块对Spring Boot项目生成JSON格式的描述文件。
在本实施例的一些可选的实现方式中,请求参数包括请求的URL、路径参数、请求头、请求体。
本申请实施例还提供一种对SDK调用请求进行加密的装置,其中,SDK执行上述任一实施例的应用于云平台的API管理方法。该加密的装置包括描述文件生成模块和SDK生成模块,其中,描述文件生成模块被配置为采用Springfox Swagger模块对Spring Boot项目生成JSON格式的描述文件;SDK生成模块被配置为编写对应计算机程序编程语言的JSON文件,执行codegen。该装置是对上述对SDK调用请求进行加密的方法的实现,具体处理与所带来的技术效果与上述对SDK调用请求进行加密的方法一致,在此不再赘述。
本申请实施例还提供一种生成SDK的装置,其中,SDK执行上述任一实施例的应用于云平台的API管理方法。该装置包括描述文件生成模块和SDK生成模块,其中,描述文件生成模块被配置为采用Springfox Swagger模块对Spring Boot项目生成JSON格式的描述文件;SDK生成模块被配置为编写对应计算机程序编程语言的JSON文件,执行codegen。该装置是对上述生成SDK的方法的实现,具体处理与所带来的技术效果与上述生成SDK的方法一致,在此不再赘述。
如图6所示,是根据本申请实施例应用于云平台的API管理方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图6所示,该电子设备包括:一个或多个处理器601、存储器602,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图6中以一个处理器601为例。
存储器602即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的应用于云平台的API管理方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的应用于云平台的API管理方法。
存储器602作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的应用于云平台的API管理方法对应的程序指令/模块(例如,附图5所示的接收模块501、模拟响应模块502)。处理器601通过运行存储在存储器602中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的应用于云平台的API管理方法。
存储器602可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据应用于云平台的API管理方法的电子设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器602可选包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至应用于云平台的API管理方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
应用于云平台的API管理方法的电子设备还可以包括:输入装置603和输出装置604。处理器601、存储器602、输入装置603和输出装置604可以通过总线或者其他方式连接,图6中以通过总线连接为例。
输入装置603可接收输入的数字或字符信息,以及产生与应用于云平台的API管理方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置604可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请的技术方案,首先接收到用户终端发送的API调用请求,所述API调用请求包含请求参数和令牌,其中,所述令牌的类别包括真实调用API的令牌、模拟调用API的令牌;之后确定所述令牌的类别,若所述令牌为模拟调用API的令牌,返回模拟的响应参数,其中,所述用户终端在预定页面调用API时,所述用户终端的API调用请求携带的令牌的类别默认为模拟调用API的令牌,从而实现在页面操作即可模拟调用对应的API,降低对云平台中的云资源人工误操作风险。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (14)

1.一种应用于云平台的应用程序接口API管理方法,包括:
接收到用户终端发送的API调用请求,所述API调用请求包含请求参数和令牌,其中,所述令牌的类别包括真实调用API的令牌、模拟调用API的令牌;
确定所述令牌的类别;
若所述令牌为模拟调用API的令牌,返回模拟的响应参数,其中,所述用户终端在预定页面调用API时,所述用户终端的API调用请求携带的令牌的类别默认为模拟调用API的令牌;
所述方法还包括:
若所述令牌为真实调用API的令牌,返回真实的响应参数,其中,所述用户终端在申请令牌页面申请出的令牌为真实调用API的令牌;
其中,所述用户终端将在申请令牌页面申请出的令牌替换到所述预定页面,所述用户终端在预定页面调用API时,返回真实的响应参数。
2.根据权利要求1所述的方法,所述预定页面为Swagger UI页面。
3.根据权利要求1所述的方法,所述方法还包括:
根据API描述文件确定所述API调用请求中的请求参数,其中,获取所述API描述文件的方法包括:
采用Springfox Swagger 模块对Spring Boot项目生成JSON格式的描述文件。
4.根据权利要求1-3任一项所述的方法,所述请求参数包括请求的统一资源定位符URL、路径参数、请求头、请求体。
5.一种对SDK调用请求进行加密的方法,其中,所述SDK执行权利要求1-3任一项所述的方法,所述加密的方法包括:
基于Swagger-codegen,对SDK调用请求中的请求参数进行签名。
6.一种生成SDK的方法,其中,所述SDK执行权利要求1-3任一项所述的方法,所述方法包括:
采用Springfox Swagger 模块对Spring Boot项目生成JSON格式的描述文件;
编写对应计算机程序编程语言的JSON文件,执行codegen。
7.一种应用于云平台的API管理装置,其特征在于,所述装置包括:
接收模块,被配置为接收到用户终端发送的API调用请求,所述API调用请求包含请求参数和令牌,其中,所述令牌的类别包括真实调用API的令牌、模拟调用API的令牌;
模拟响应模块,被配置为确定所述令牌的类别,若所述令牌为模拟调用API的令牌,返回模拟的响应参数,其中,所述用户终端在预定页面调用API时,所述用户终端的API调用请求携带的令牌的类别默认为模拟调用API的令牌;
所述装置还包括:
真实响应模块,被配置为确定所述令牌的类别,若所述令牌为真实调用API的令牌,返回真实的响应参数,其中,所述用户终端在申请令牌页面申请出的令牌为真实调用API的令牌;
其中,所述用户终端将在申请令牌页面申请出的令牌替换到所述预定页面,所述用户终端在预定页面调用API时,返回真实的响应参数。
8.根据权利要求7所述的装置,其中,所述预定页面为Swagger UI页面。
9.根据权利要求7所述的装置,还包括:
请求参数确定模块,被配置为根据API描述文件确定所述API调用请求中的请求参数,其中,获取所述API描述文件的方法包括:
采用Springfox Swagger 模块对Spring Boot项目生成JSON格式的描述文件。
10.根据权利要求7-9任一项所述的装置,所述请求参数包括请求的URL、路径参数、请求头、请求体。
11.一种对SDK调用请求进行加密的装置,其中,所述SDK被配置为包括权利要求7-9任一项所述的装置,所述加密的装置包括:
签名模块,被配置为基于Swagger-codegen,对SDK调用请求中的请求参数进行签名。
12.一种生成SDK的装置,其中,所述SDK被配置为包括权利要求7-9任一项所述的装置,所述装置包括:
描述文件生成模块,被配置为采用Springfox Swagger 模块对Spring Boot项目生成JSON格式的描述文件;
SDK生成模块,被配置为编写对应计算机程序编程语言的JSON文件,执行codegen。
13.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的方法。
14.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行权利要求1-6中任一项所述的方法。
CN202010903150.9A 2020-09-01 2020-09-01 应用于云平台的api管理方法、装置、设备以及存储介质 Active CN112035282B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010903150.9A CN112035282B (zh) 2020-09-01 2020-09-01 应用于云平台的api管理方法、装置、设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010903150.9A CN112035282B (zh) 2020-09-01 2020-09-01 应用于云平台的api管理方法、装置、设备以及存储介质

Publications (2)

Publication Number Publication Date
CN112035282A CN112035282A (zh) 2020-12-04
CN112035282B true CN112035282B (zh) 2023-07-25

Family

ID=73590486

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010903150.9A Active CN112035282B (zh) 2020-09-01 2020-09-01 应用于云平台的api管理方法、装置、设备以及存储介质

Country Status (1)

Country Link
CN (1) CN112035282B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112860356B (zh) * 2021-02-10 2023-08-15 北京百度网讯科技有限公司 一种api调用控制方法、装置、电子设备和存储介质
CN114157917B (zh) * 2021-11-29 2024-04-16 北京百度网讯科技有限公司 视频剪辑方法、装置及终端设备
CN114385384B (zh) * 2021-12-28 2023-11-21 联通智网科技股份有限公司 一种应用编程接口调用方法及相关设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9959198B1 (en) * 2016-05-26 2018-05-01 Google Llc Simulated testing of API
CN108427631A (zh) * 2017-02-14 2018-08-21 北京京东尚科信息技术有限公司 一种应用测试系统、方法、电子设备和可读存储介质
US10089219B1 (en) * 2017-01-20 2018-10-02 Intuit Inc. Mock server for testing
CN110109656A (zh) * 2019-03-25 2019-08-09 平安科技(深圳)有限公司 接口模拟方法、装置、计算机设备和存储介质
CN110347593A (zh) * 2019-06-26 2019-10-18 贝壳技术有限公司 流程测试方法及装置
CN110489101A (zh) * 2019-07-15 2019-11-22 北京字节跳动网络技术有限公司 接口模拟方法、系统、介质和电子设备
CN111597110A (zh) * 2020-04-27 2020-08-28 五八有限公司 页面测试方法、装置、电子设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11030085B2 (en) * 2019-01-18 2021-06-08 Salesforce.Com, Inc. User defined mocking service behavior

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9959198B1 (en) * 2016-05-26 2018-05-01 Google Llc Simulated testing of API
US10089219B1 (en) * 2017-01-20 2018-10-02 Intuit Inc. Mock server for testing
CN108427631A (zh) * 2017-02-14 2018-08-21 北京京东尚科信息技术有限公司 一种应用测试系统、方法、电子设备和可读存储介质
CN110109656A (zh) * 2019-03-25 2019-08-09 平安科技(深圳)有限公司 接口模拟方法、装置、计算机设备和存储介质
CN110347593A (zh) * 2019-06-26 2019-10-18 贝壳技术有限公司 流程测试方法及装置
CN110489101A (zh) * 2019-07-15 2019-11-22 北京字节跳动网络技术有限公司 接口模拟方法、系统、介质和电子设备
CN111597110A (zh) * 2020-04-27 2020-08-28 五八有限公司 页面测试方法、装置、电子设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于Python的Web API自动化测试方法研究;王大伟;;电子科学技术(05);全文 *

Also Published As

Publication number Publication date
CN112035282A (zh) 2020-12-04

Similar Documents

Publication Publication Date Title
CN112035282B (zh) 应用于云平台的api管理方法、装置、设备以及存储介质
US10482262B2 (en) Static analysis based on abstract program representations
US10152305B2 (en) Composite virtual services
US10210077B2 (en) Using multiple sequence alignment to identify security vulnerability code paths
US9720800B2 (en) Auto-generating representational state transfer (REST) services for quality assurance
US11288376B2 (en) Identifying hard-coded secret vulnerability inside application source code
JP7446332B2 (ja) ソフトウェア・プログラムの管理
CN112527252B (zh) 小程序管理方法及装置、小程序平台、电子设备、介质
US20080244062A1 (en) Scenario based performance testing
US20180196647A1 (en) Application Programming Interface Discovery Using Pattern Recognition
US20150234731A1 (en) Virtualized software interaction contract
US20170286272A1 (en) Virtual service localization
WO2021120180A1 (en) Virtual workspace experience visualization and optimization
JP2023552651A (ja) ブロックチェーンに基づくデータ処理方法および装置
CN114363088B (zh) 用于请求数据的方法和装置
US11138094B2 (en) Creation of minimal working examples and environments for troubleshooting code issues
WO2023169193A1 (zh) 用于生成智能合约的方法和装置
US11928051B2 (en) Test space sampling for model-based biased random system test through rest API
US20210011947A1 (en) Graphical rendering of automata status
US10977218B1 (en) Distributed application development
CN111767221A (zh) 接口测试方法、装置、设备以及存储介质
CN113495498A (zh) 用于硬件设备的模拟方法、模拟器、设备和介质
US10540187B2 (en) User-initiated dynamic data application programming interface creation
US20190163608A1 (en) Estimating the number of coding styles by analyzing source code
US11409874B2 (en) Coprocessor-accelerated verifiable computing

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