在智能对话开发平台上发布、调用API的方法和系统转让专利

申请号 : CN201810209297.0

文献号 : CN108415710B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李波吴飞

申请人 : 苏州思必驰信息科技有限公司

摘要 :

本发明公开在智能对话开发平台上发布API的方法及装置,其中,方法包括:响应于开发者在智能对话开发平台的API发布界面上的输入操作,获取待发布API的基本信息、输入参数和返回参数;在API发布界面上,基于预定的serverless模板引导开发者编写待发布API的功能代码;测试待发布API能否正常使用;响应于使用正常,生成第二响应地址以作为待发布API的发布地址,将待发布API部署为serverless服务并将待发布API及对应的第二响应地址发布至智能对话开发平台的API网关。本发明的方案可以屏蔽复杂的授权算法、不暴露授权key等加密数据,以API网关统一的授权key对外部开放。

权利要求 :

1.一种在智能对话开发平台上发布API的方法,包括:

响应于开发者在智能对话开发平台的API发布界面上的输入操作,获取待发布API的基本信息、输入参数和返回参数;

在所述API发布界面上,基于预定的serverless模板引导开发者编写所述待发布API的功能代码,其中,所述serverless模板至少包括以下代码:获取用户的请求信息、获取待调用API的授权以及向所述待调用API的第一响应地址发送所述用户请求并获取所述第一响应地址的反馈信息;

响应于所述开发者的测试请求,测试所述待发布API能否正常使用;

响应于使用正常及所述开发者的发布请求,生成第二响应地址作为所述待发布API的发布地址以不暴露所述第一响应地址,将所述待发布API部署为serverless服务并将所述待发布API及对应的所述第二响应地址发布至所述智能对话开发平台的API网关。

2.根据权利要求1所述的方法,其中,所述serverless模板包括:获取用户的请求信息;

对所述用户请求信息二次处理以得到处理后的请求信息;

获取待调用API的授权信息;

使用所述处理后的请求信息和所述授权信息向所述待调用API的第一响应地址发送请求并获取所述第一响应地址的反馈信息;

对所述反馈信息进行二次处理以得到处理后的反馈信息;

向所述用户返回所述处理后的反馈信息。

3.根据权利要求1或2所述的方法,其中,所述第二响应地址与所述智能对话开发平台的API网关的其他本地API具有相同的格式。

4.根据权利要求3所述的方法,还包括:

基于所述API网关为所述开发者开发的API提供统一的运维和管理。

5.一种在智能对话开发平台上调用API的方法,包括:

响应于开发者在智能对话开发平台上调用其他开发者开发的API,获取所述开发者的账号和所调用的API在智能对话开发平台的API网关发布的第二响应地址,其中所述第二响应地址作为所述待发布API的发布地址从而不暴露第一响应地址,所述第一响应地址为其他开发者发布所述API之前使用的原始响应地址;

基于所述开发者的账号和所调用的API生成API统一授权秘钥;

使用所述统一授权秘钥,向所述第二响应地址发送调用请求;

基于所述第二响应地址返回的对第三方API的调用信息,发起对所述第三方API的调用请求。

6.一种在智能对话开发平台上发布API的系统,包括:

信息获取模块,配置为响应于开发者在智能对话开发平台的API发布界面上的输入操作,获取待发布API的基本信息、输入参数和返回参数;

功能编写模块,配置为在所述API发布界面上,基于预定的serverless模板引导开发者编写所述待发布API的功能代码,其中,所述serverless模板至少包括获取用户的请求信息、获取待调用API的授权以及向所述待调用API的第一响应地址发送所述用户请求并获取所述第一响应地址的反馈信息;

测试模块,配置为响应于所述开发者的测试请求,测试所述待发布API能否正常使用;

发布模块,配置为响应于使用正常及所述开发者的发布请求,生成第二响应地址作为所述待发布API的发布地址以不暴露所述第一响应地址,将所述待发布API部署为serverless服务并将所述待发布API及对应的所述第二响应地址发布至所述智能对话开发平台的API网关。

7.一种在智能对话开发平台上调用API的系统,包括:

响应模块,配置为响应于开发者在智能对话开发平台上调用其他开发者开发的API,获取所述开发者的账号和所调用的API在智能对话开发平台的API网关发布的第二响应地址,其中所述第二响应地址作为所述待发布API的发布地址从而不暴露第一响应地址,所述第一响应地址为其他开发者发布所述API之前使用的原始响应地址;

统一授权模块,配置为基于所述开发者的账号和所调用的API生成API统一授权秘钥;

第一调用模块,配置为使用所述统一授权秘钥,向所述第二响应地址发送调用请求;以及第二调用模块,配置为基于所述第二响应地址返回的对第三方API的调用信息,发起对所述第三方API的调用请求。

8.一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至5任一项所述方法的步骤。

9.一种存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1至5任一项所述方法的步骤。

说明书 :

在智能对话开发平台上发布、调用API的方法和系统

技术领域

[0001] 本发明属于日志分析技术领域,尤其涉及在智能对话开发平台上发布、调用API的方法和系统。

背景技术

[0002] 中小型公司,尤其是互联网行业的创业公司,本身并没有太多的技术人员,如果设计系统时需要考虑诸多的技术问题,例如Web应用服务器如何配置、数据库如何配置、消息服务中间件如何搭建等等,那对于他们来说人员成本、系统成本会很高,Serverless架构(无服务器架构)的出现,让这种情况可能可以大幅度改善。
[0003] 在目前主流云计算IaaS(Infrastructure-as-a-Service,基础设施即服务)和PaaS(Platform-as-a-Service,平台即服务)中,开发人员进行业务开发时,仍然需要关心很多和服务器相关的服务端开发工作,比如缓存、消息服务、Web应用服务器、数据库,以及对服务器进行性能优化,还需要考虑存储和计算资源,考虑负载均衡和横向扩展能力,考虑服务器容灾稳定性等非专业逻辑的开发。这些服务器的运维和开发知识、经验极大地限制了开发者进行业务开发的效率。设想一下,如果开发者直接租用服务或者开发服务而无须关注如何在服务器中运行部署服务,是否可以极大地提升开发效率和产品质量?这种去服务器而直接使用服务的架构,我们称之为Serverless架构。
[0004] API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
[0005] 基于互联网的应用正变得越来越普及,在这个过程中,有更多的站点将自身的资源开放给开发者来调用。对外提供的API调用使得站点之间的内容关联性更强,同时这些开放的平台也为用户、开发者和中小网站带来了更大的价值。
[0006] 开放是目前的发展趋势,越来越多的产品走向开放。为了对外提供统一的API接口,需要对开发者开放资源调用API的站点提供开放统一的API接口环境,来帮助使用者访问站点的功能和资源。
[0007] API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API网关封装了系统内部架构,为每个客户端提供一个定制的API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。
[0008] 发明人在实现本发明的过程中发现:相关技术中,一般都是通过输入参数映射的方式将API发布到API网关。但是,大多数API的授权加密等参数是通过复杂算法计算得到的,无法直接通过输入参数映射的方式将API发布到API网关。

发明内容

[0009] 本发明实施例提供一种在智能对话开发平台上发布、调用API的方法和系统,用于至少解决上述技术问题之一。
[0010] 第一方面,本发明实施例提供一种在智能对话开发平台上发布API的方法,包括:响应于开发者在智能对话开发平台的API发布界面上的输入操作,获取待发布API的基本信息、输入参数和返回参数;在所述API发布界面上,基于预定的serverless模板引导开发者编写所述待发布API的功能代码,其中,所述serverless模板至少包括以下代码:获取用户的请求信息、获取待调用API的授权以及向所述待调用API的第一响应地址发送所述用户请求并获取所述第一响应地址的反馈信息;响应于开发者的测试请求,测试所述待发布API能否正常使用;响应于使用正常及开发者的发布请求,生成第二响应地址以作为所述待发布API的发布地址,将所述待发布API部署为serverless服务并将所述待发布API及对应的所述第二响应地址发布至所述智能对话开发平台的API网关。
[0011] 第二方面,本发明实施例提供一种在智能对话开发平台上调用API的方法,包括:响应于开发者在智能对话开发平台上调用其他开发者开发的API,获取所述开发者的账号和所调用的API在智能对话开发平台的API网关发布的响应地址;基于所述开发者的账号和所调用的API生成API统一授权秘钥;使用所述统一授权秘钥,向所述响应地址发送调用请求;以及基于所述响应地址返回的对第三方API的调用信息,发起对所述第三方API的调用请求。
[0012] 第三方面,本发明实施例提供一种在智能对话开发平台上发布API的系统,包括:信息获取模块,配置为响应于开发者在智能对话开发平台的API发布界面上的输入操作,获取待发布API的基本信息、输入参数和返回参数;功能编写模块,配置为在所述API发布界面上,基于预定的serverless模板引导开发者编写所述待发布API的功能代码,其中,所述serverless模板至少包括获取用户的请求信息、获取待调用API的授权以及向所述待调用API的第一响应地址发送所述用户请求并获取所述第一响应地址的反馈信息;测试模块,配置为响应于所述开发者的测试请求,测试所述待发布API能否正常使用;以及发布模块,配置为响应于使用正常及所述开发者的发布请求,生成第二响应地址以作为所述待发布API的发布地址,将所述待发布API部署为serverless服务并将所述待发布API及对应的所述第二响应地址发布至所述智能对话开发平台的API网关。
[0013] 第四方面,本发明实施例提供一种在智能对话开发平台上调用API的系统,包括:响应模块,配置为响应于开发者在智能对话开发平台上调用其他开发者开发的API,获取所述开发者的账号和所调用的API在所述智能对话开发平台的API网关发布的响应地址;授权模块,配置为基于所述开发者的账号和所调用的API生成API统一授权秘钥;以及请求发送模块,配置为使用所述统一授权秘钥,向所述响应地址发送调用请求。
[0014] 第五方面,提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例的在智能对话开发平台上发布、调用API的方法的步骤。
[0015] 第六方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行本发明任一实施例的在智能对话开发平台上发布、调用API的方法的步骤。
[0016] 本发明实施例的有益效果在于:结合当下兴起的serverless技术,开发者基于预设模板编辑一段代码,完成API的映射。这样可以屏蔽复杂的授权算法、不暴露授权key等加密数据,以API网关统一的授权key对外部开放。并且开发者可以快速发布API至API网关,开发者开发自己的API服务时无需考虑网关的各种协议。

附图说明

[0017] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0018] 图1为本发明一实施例提供的一种在智能对话开发平台上发布API的方法的流程图;
[0019] 图2为本发明一实施例提供的一种在智能对话开发平台上发布API的方法的子步骤的流程图;
[0020] 图3为本发明一实施例提供的一种在智能对话开发平台上调用API的方法的流程图;
[0021] 图4a、图4b和图4c为本发明一实施例的在智能对话开发平台上发布API的方法的一个应用场景的界面截图;
[0022] 图5a和图5b为本发明一实施例的在智能对话开发平台上调用API的方法的一个应用场景的界面截图;
[0023] 图6为本发明一实施例提供的一种在智能对话开发平台上发布API的系统的框图;
[0024] 图7为本发明一实施例提供的一种在智能对话开发平台上调用API的系统的框图;
[0025] 图8为本发明一实施例提供的电子设备的结构示意图。

具体实施方式

[0026] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0027] 需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0028] 本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0029] 在本发明中,“模块”、“系统”等等指应用于计算机的相关实体,如硬件、硬件和软件的组合、软件或执行中的软件等。详细地说,例如,元件可以、但不限于是运行于处理器的过程、处理器、对象、可执行元件、执行线程、程序和/或计算机。还有,运行于服务器上的应用程序或脚本程序、服务器都可以是元件。一个或多个元件可在执行的过程和/或线程中,并且元件可以在一台计算机上本地化和/或分布在两台或多台计算机之间,并可以由各种计算机可读介质运行。元件还可以根据具有一个或多个数据包的信号,例如,来自一个与本地系统、分布式系统中另一元件交互的,和/或在因特网的网络通过信号与其它系统交互的数据的信号通过本地和/或远程过程来进行通信。
[0030] 最后,还需要说明的是,在本文中,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0031] 请参考图1,其示出了本发明的在智能对话开发平台上发布API的方法一实施例的流程图,本实施例的在智能对话开发平台上发布API的方法可以适用于在智能对话开发平台上发布API的平台或者说在智能对话开发平台上发布API的系统。
[0032] 如图1所示,在步骤101中,响应于开发者在智能对话开发平台的API发布界面上的输入操作,获取待发布API的基本信息、输入参数和返回参数;
[0033] 之后,在步骤102中,在API发布界面上,基于预定的serverless模板引导开发者编写待发布API的功能代码,其中,serverless模板至少包括以下代码:获取用户的请求信息、获取待调用API的授权以及向待调用API的第一响应地址发送用户请求并获取第一响应地址的反馈信息;
[0034] 之后,在步骤103中,响应于开发者的测试请求,测试待发布API能否正常使用;
[0035] 最后,在步骤104中,响应于使用正常及开发者的发布请求,生成第二响应地址以作为待发布API的发布地址,将待发布API部署为serverless服务并将待发布API及对应的第二响应地址发布至智能对话开发平台的API网关。
[0036] 在本实施例中,对于步骤101,智能开发平台的API发布系统上设置有API发布界面,API的开发者可以根据界面的引导输入待发布API的基本信息、输入参数和返回参数。其中,基本信息可以包括API命名和API描述,输入参数即API需要获取的来自用户的输入参数,例如导航API可能会需要用到用户输入的出发地和目的地,返回参数即API处理之后最终需要返回那些参数,例如导航API需要返回各种可行路线。之后,对于步骤102,在API发布界面上还设置有预定的serverless模板,帮助开发者将自己的API部署为serverless服务,开发者可以直接在模板的基础上修改,加入自己的功能及处理过程。其中,serverless模板中至少包括以下代码开发者获取用户的请求信息,例如可以是前面提到的出发地和目的地以及开发者后续功能可能用到的参数,具体的参数需要开发者自己设置,或者也能根据开发者之前填写的内容自动生成相应的代码;模板中还需要包括开发者获取原始的待调用API的授权,例如,开发者是在某导航API的基础上开发的API,则需要获取某导航API的授权信息;之后,模板上还需要有向待调用API的第一响应地址发送用户请求的代码,及获取来自该第一响应地址的反馈信息的代码,例如前面提及的返回的各种可行路线。之后,对于步骤103,API发布系统响应于开发者的测试请求,测试待开发API能否正常使用,例如,在API发布界面上可以有一个“测试”按钮,当开发者把之前模板上的代码修改完毕之后,可能会需要测试修改后的代码是否可行,点击该测试按钮,按照预设指令测试即可,在测试的过程中,可能需要开发者输入相应的输入参数对应的信息,本申请在此没有限制。最后,在步骤104中,响应于之前的测试结果为使用正常,并且接收到开发者的发布请求时,生成第二响应地址以作为待发布API的发布地址,将该待发布API部署为serverless服务并将待发布API及该第二响应地址发布至智能对话开发平台的API网关。例如,在API发布界面上可以有“发布”按钮,当开发者点击该按钮之后,API发布系统将会与生成该待发布API相应的发布地址。需要说明的是,该第二响应地址,即发布地址,与第一响应地址,即被待发布API调用的原始API的地址不同,从而,开发者发布自己的API时,其他API使用者看到将会是被包装后的地址,一方面,可以屏蔽原始被调用API的复杂的授权算法,另一方面,也不会暴露原始被调用API的授权Key等加密参数,以新的响应地址呈现在其他使用者面前。
[0037] 在一些可选的实施例中,第二响应地址与智能对话开发平台的API网关的其他本地API具有相同的格式,从而可以以API网关统一的地址格式对外开放,能够支持以API网关统一的授权key对外部开放。从而开发者可以快速发布API至API网关,开发者开发自己的API服务时也无需考虑网关的各种协议。
[0038] 在另一些可选的实施例中,智能开发平台的API发布系统可以基于API网关为开发者开发的API提供统一的运维和管理。从而更加方便开发者使用该API发布系统,提升开发者的使用体验。
[0039] 进一步参考图2,其示出了本发明一实施例提供的一种在智能对话开发平台上发布API的方法的子步骤的流程图,主要是对前一实施例中serverless模板的进一步的描述。本实施例的在智能对话开发平台上发布API的方法可以适用于在智能对话开发平台上发布API的平台或者在智能对话开发平台上发布API的系统。
[0040] 如图2所示,在步骤201中,获取用户的请求信息;
[0041] 在步骤202中,对用户请求信息二次处理以得到处理后的请求信息;
[0042] 之后,在步骤203中,获取待调用API的授权信息;
[0043] 之后,在步骤204中,使用处理后的请求信息和授权信息向待调用API的第一响应地址发送请求并获取第一响应地址的反馈信息;
[0044] 之后,在步骤205中,对反馈信息进行二次处理以得到处理后的反馈信息;
[0045] 最后,在步骤206中,向用户返回处理后的反馈信息。
[0046] 在本实施例中,主要是在前一实施例对serverless模板的描述中进一步加入了开发者在原始被调用API的基础上加入自己编写的新的处理逻辑的,步骤201、步骤203、步骤204及步骤206在前一实施例中已经描述,在此不再赘述。对于步骤202,开发者可以在模板的此处加入自己的处理逻辑,例如对于导航API获取的用户的出发地和目的地,开发者开发的API可能还需要做其他处理,例如显示出发地和目的地的街景地图或者语音播报相关信息等,此时,开发者可以将自己的处理逻辑加入到模板的该处。之后,对于步骤205,对于被调用API的反馈信息,例如对于导航API返回的可行线路,开发者可能还需要加入自己的一些处理然后才反馈给用户,则开发者可以将自己的处理加入在该处。通过在模板中引导开发者在某些可能会存在开发者自己的处理逻辑和新增功能的位置,从而可以更加便于开发者开发自己的处理逻辑和功能,提升开发者的使用体验。
[0047] 请参考图3,其示出了本发明一实施例提供的一种在智能对话开发平台上调用API的方法的流程图。本实施例的在智能对话开发平台上调用API的方法可以适用于开发者在智能对话开发平台上调用其他开发者发布在该平台的API或者平台上的API调用系统。
[0048] 如图3所示,在步骤301中,响应于开发者在智能对话开发平台上调用其他开发者开发的API,获取开发者的账号和所调用的API在智能对话开发平台的API网关发布的响应地址;
[0049] 之后,在步骤302中,基于开发者的账号和所调用的API生成API统一授权秘钥;
[0050] 之后,在步骤303中,使用统一授权秘钥,向响应地址发送调用请求;
[0051] 最后,在步骤304中,基于响应地址返回的对第三方API的调用信息,发起对第三方API的调用请求。
[0052] 在本实施例中,对于步骤301,开发者可以在智能对话开发平台上调用其他开发者开发的API,此时,智能对话开发平台的API调用系统会获取开发者的账号和所调用的API在智能对话开发平台的API网关发布的响应地址,但是开发者调用的时候是不会知道其他开发者开发的API是否调用别人的API,因为开发者能看到的只是在API网关的发布地址。之后对于步骤302,智能对话开发平台基于之前获取的开发者的账号和所调用的API生成API统一授权秘钥以用于开发者访问该API的发布地址。之后,在步骤303中,API调用系统使用该统一授权秘钥,向该API网关发布的响应地址发送请求。最后,在步骤304中,API调用系统基于响应地址返回的对第三方API的调用信息,例如可以包括第三方API的授权信息和响应地址,API调用系统发起对第三方API的调用请求。而该对第三方API的调用过程是开发者无法得知的,所以可以很好地隐藏第三方API的授权Key等加密信息,以API网关统一的授权Key对外开放,并且有系统来做安全性更高,能够屏蔽复杂的授权算法。
[0053] 请参考图4a、图4b和图4c,其示出了本发明一实施例的在智能对话开发平台上发布API的方法的一个应用场景的界面截图。
[0054] 请参考图4a,其示出了在“资源调用”中,我们可以选择“不使用数据资源”、“使用API资源”(调用平台本地的API)、“编写Function”。在本申请中我们做的就是“编写Function”(编写功能),我们可以选择“+创建新的function”来创建包含开发者自己的功能逻辑的API,点击旁边的“Function编写示例”可以查看相关的例子。当然,我们选择“+创建新的function”时,也会出现相应的模板引导开发者编写相关的代码,具体可参见图4b和图4c。其中图4b示出了开发者选择“+创建新的function”之后,弹出界面的上半部分,图4c示出了开发者选择“+创建新的function”之后,弹出界面的下半部分。其中上半部分示出了需要获取的用户的输入参数,通过点击“+添加自定义参数”,可以将需要的参数传递至图4c中的代码框中,图4c中包含了相应的模板,只需要开发者编写自己的处理逻辑即可。图4c中还包含了“提交&测试”可以对开发者编写完成的代码进行测试,开发者只需模拟用户输入相关的参数或句子即可,例如“石家庄的天气怎么样”。
[0055] 图5a和图5b为本发明一实施例的在智能对话开发平台上调用API的方法的一个应用场景的界面截图。
[0056] 如图5a所示,当开发者在“资源调用”中选择“使用API资源”时,开发者可以选择使用已经发布的Web API,这些API都是其他开发者发布的,它们被赋予与平台上的的本地API相同的格式,因此开发者调用这些API时,并不知道这些API的秘钥,因为他们用的是自己的登录名和平台统一的秘钥登陆的,而这些可以被调用的API也有很多很分类,具体可参照图5b。
[0057] 以下通过一个应用实例示出了综合了图4a、图4b、图4c、图5a和图5b的,平台对于发布API和调用API的处理逻辑。
[0058] (1)发布API
[0059] 1、API命名、API描述
[0060] 2、API参数设计
[0061] 3、编写serverless代码
[0062] Function(input)
[0063] 1、从input中获取用户请求参数
[0064] 2、1中参数二次处理
[0065] 3、原始API授权
[0066] 4、使用2中参数和3中授权向原始API HTTP地址(old)发送请求(执行服务或获取数据)
[0067] 5、获取原始API的响应
[0068] 6、5中响应二次处理
[0069] 7、返回数据
[0070] End
[0071] 4、API返回数据描述
[0072] 5、测试API
[0073] 6、自动部署API为servless服务
[0074] 7、生成新的API HTTP地址(new)
[0075] 8、管理员测试审核
[0076] 9、API通过API gateway对外开放
[0077] (2)通过API gatew0ay调用API
[0078] 1、基于开发者账号和所调用的API生成API统一授权key
[0079] 2、使用统一授权key,向地址new发送http post请求
[0080] 其中,发布第三方API至API网关的方法,包括:响应于开发者发布第三方API至API网关的请求,向用户展示第三方API的信息获取界面,其中,第三方API的信息获取界面至少用于获取第三方API的第一授权信息及第三方API的第一响应地址信息;为获取的第三方API的第一响应地址创建对应于API网关的第二响应地址和第二授权信息以用于其他开发者基于第二响应地址和第二授权信息访问第三方API,其中,第二授权信息为API网关针对第三方API的授权信息;基于第二授权信息和第二响应地址将第三方API发布至API网关以隐藏第三方API的第一授权信息和第一响应地址信息。进一步地,第三方API的新的响应地址与API网关的本地API的响应地址具有相同的格式。
[0081] 其中,通过API网关调用第三方API的方法,包括:接收开发者对第三方API的第一调用请求,其中,第三方API具有第一授权信息、第一响应地址信息和对应于API网关的第二响应地址信息,调用请求中包括开发者的登录信息以及第三方API的第二响应地址;解析调用请求,获取与开发者的登录信息对应的授权信息,判断开发者是否有权限调用第三方API;若判断为有权限,基于预先存储的第三方API的第一授权信息和第一响应地址信息向第三方API发起第二调用请求,并接收第一响应地址的反馈信息;将反馈信息发送给开发者。
[0082] 本实施例结合当下兴起的serverless技术,开发者编辑一段代码,完成API的映射。这样可以屏蔽复杂的授权算法、不暴露授权key等加密数据,以API网关统一的授权key对外部开放。经过封装的API统一以HTTP POST请求,JSON请求体的形式发布使用。
[0083] 需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作合并,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0084] 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0085] 请参考图6,其示出了本发明一实施例提供的一种在智能对话开发平台上发布API的系统。本实施例的在智能对话开发平台上发布API的方法可以适用于在智能对话开发平台。
[0086] 如图6所示,本发明实施例所提供的在智能对话开发平台上发布API的系统600,包括信息获取模块610、功能编写模块620、测试模块630和发布模块640。其中,信息获取模块610,配置为响应于开发者在智能对话开发平台的API发布界面上的输入操作,获取待发布API的基本信息、输入参数和返回参数;功能编写模块620,配置为在API发布界面上,基于预定的serverless模板引导开发者编写待发布API的功能代码,其中,serverless模板至少包括获取用户的请求信息、获取待调用API的授权以及向待调用API的第一响应地址发送用户请求并获取第一响应地址的反馈信息;测试模块630,配置为测试待发布API能否正常使用;
以及发布模块640,配置为响应于使用正常,生成第二响应地址以作为待发布API的发布地址,将待发布API部署为serverless服务并将待发布API及对应的第二响应地址发布至智能对话开发平台的API网关。
[0087] 请参考图7,其示出了本发明一实施例提供的一种在智能对话开发平台上调用API的系统,可以适用于智能对话开发平台。
[0088] 如图7所示,本发明实施例所提供的在智能对话开发平台上调用API的系统700,包括响应模块710、统一授权模块720、第一调用模块730和第二调用模块740。
[0089] 其中,响应模块710,配置为响应于开发者在智能对话开发平台上调用其他开发者开发的API,获取开发者的账号和所调用的API在智能对话开发平台的API网关发布的响应地址;统一授权模块720,配置为基于开发者的账号和所调用的API生成API统一授权秘钥;第一调用模块730,配置为使用统一授权秘钥,向响应地址发送调用请求;以及第二调用模块740,配置为基于响应地址返回的对第三方API的调用信息,发起对第三方API的调用请求。
[0090] 应当理解,图6和图7中记载的诸模块与参考图1和图3中描述的方法中的各个步骤相对应。由此,上文针对方法描述的操作和特征以及相应的技术效果同样适用于图6和图7中的诸模块,在此不再赘述。
[0091] 值得注意的是,本公开的实施例中的模块并不用于限制本公开的方案,例如日志收集模块可以描述为用于收集日志并存储在日志仓库的模块。另外,还可以通过硬件处理器来实现相关功能模块,例如日志收集模块也可以用处理器实现,在此不再赘述。
[0092] 在另一些实施例中,本发明实施例还提供了一种非易失性计算机存储介质,计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的在智能对话开发平台上发布API的方法;
[0093] 作为一种实施方式,本发明的非易失性计算机存储介质存储有计算机可执行指令,计算机可执行指令设置为:
[0094] 响应于开发者在智能对话开发平台的API发布界面上的输入操作,获取待发布API的基本信息、输入参数和返回参数;
[0095] 在所述API发布界面上,基于预定的serverless模板引导开发者编写所述待发布API的功能代码,其中,所述serverless模板至少包括以下代码:获取用户的请求信息、获取待调用API的授权以及向所述待调用API的第一响应地址发送所述用户请求并获取所述第一响应地址的反馈信息;
[0096] 响应于所述开发者的测试请求,测试所述待发布API能否正常使用;
[0097] 响应于使用正常及所述开发者的发布请求,生成第二响应地址以作为所述待发布API的发布地址,将所述待发布API部署为serverless服务并将所述待发布API及对应的所述第二响应地址发布至所述智能对话开发平台的API网关。
[0098] 作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的在智能对话开发平台上发布API的方法对应的程序指令/模块。一个或者多个程序指令存储在非易失性计算机可读存储介质中,当被处理器执行时,执行上述任意方法实施例中的在智能对话开发平台上发布API的方法。
[0099] 非易失性计算机可读存储介质可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据在智能对话开发平台上发布API的装置的使用所创建的数据等。此外,非易失性计算机可读存储介质可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,非易失性计算机可读存储介质可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至在智能对话开发平台上发布API的装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0100] 本发明实施例还提供一种计算机程序产品,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,使计算机执行上述任一项在智能对话开发平台上发布API的方法。
[0101] 图8是本发明实施例提供的电子设备的结构示意图,如图8所示,该设备包括:
[0102] 一个或多个处理器810以及存储器820,图8中以一个处理器810为例。
[0103] 在智能对话开发平台上发布API的方法的设备还可以包括:输入装置830和输出装置840。
[0104] 处理器810、存储器820、输入装置830和输出装置840可以通过总线或者其他方式连接,图8中以通过总线连接为例。
[0105] 存储器820为上述的非易失性计算机可读存储介质。
[0106] 处理器810通过运行存储在存储器820中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例在智能对话开发平台上发布API的方法。
[0107] 输入装置830可接收输入的数字或字符信息,以及产生与信息投放装置的用户设置以及功能控制有关的键信号输入。输出装置840可包括显示屏等显示设备。
[0108] 上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
[0109] 作为一种实施方式,上述电子设备应用于在智能对话开发平台上发布API的平台,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够:
[0110] 响应于开发者在智能对话开发平台的API发布界面上的输入操作,获取待发布API的基本信息、输入参数和返回参数;
[0111] 在所述API发布界面上,基于预定的serverless模板引导开发者编写所述待发布API的功能代码,其中,所述serverless模板至少包括以下代码:获取用户的请求信息、获取待调用API的授权以及向所述待调用API的第一响应地址发送所述用户请求并获取所述第一响应地址的反馈信息;
[0112] 响应于所述开发者的测试请求,测试所述待发布API能否正常使用;
[0113] 响应于使用正常及所述开发者的发布请求,生成第二响应地址以作为所述待发布API的发布地址,将所述待发布API部署为serverless服务并将所述待发布API及对应的所述第二响应地址发布至所述智能对话开发平台的API网关。
[0114] 本申请实施例的电子设备以多种形式存在,包括但不限于:
[0115] (1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
[0116] (2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
[0117] (3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
[0118] (4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
[0119] (5)其他具有数据交互功能的电子装置。
[0120] 以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0121] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0122] 最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。