CN106897153B - 调用应用编程接口的方法和系统 - Google Patents
调用应用编程接口的方法和系统 Download PDFInfo
- Publication number
- CN106897153B CN106897153B CN201510956283.1A CN201510956283A CN106897153B CN 106897153 B CN106897153 B CN 106897153B CN 201510956283 A CN201510956283 A CN 201510956283A CN 106897153 B CN106897153 B CN 106897153B
- Authority
- CN
- China
- Prior art keywords
- metadata file
- information
- data information
- piece
- module
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Telephonic Communication Services (AREA)
Abstract
本申请涉及一种调用应用编程接口的方法和系统,该方法包括:解析用户输入的调用操作请求,获取调用操作请求中的至少一个第一数据信息;根据至少一个第一数据信息从元数据文件中获取至少一个第二数据信息;根据至少一个第一数据信息和至少一个第二数据信息确定调用的应用编程接口,并生成请求消息;通过调用应用编程接口向远程服务器发送请求消息,以用于远程服务器根据请求消息返回结果信息。避免了现有技术中调用API的命令行工具依赖SDK包的问题,提高命令行工具对服务的适配性。
Description
技术领域
本申请涉及应用编程接口调用领域,尤其涉及一种基于元数据 (Metadata)的命令行工具调用应用编程接口API的方法和系统。
背景技术
一个网站提供一个服务时,不会直接提供服务的源代码,或者称为业务的源代码。服务商会将需要提供的网站服务封装成一系列的应用编程接口 (ApplicationProgramming Interface,API),以API的方式将该服务提供出去,以供第三方开发者使用,这种行为叫做开放网站的API,被开放的 API称作OpenAPI,或称作开放API,也可以称作开放平台。
第三方开发者可以通过网站服务提供API的软件开发工具包(SoftwareDevelopment Kit,SDK)进行二次开发和调用,以完成用户的各种需求。用户在使用网站服务时,利用命令行工具,通过SDK调用API完成通信和交互。
而目前采用命令行工具调用API的系统如图1所示。交互界面110接收用户输入的命令并解析,将解析后的命令发送给SDK解析和调用模块120;SDK 解析和调用模块调用SDK包130中的相应的接口,并将所有接口与解析后的命令进行匹配,当所有接口中的任一接口与解析后的命令相匹配时,SDK解析和调用模块根据解析后的命令校验并生成请求,调用相匹配的接口向远程服务器发送该请求,以用于远程服务器根据该请求返回结果。
但是,通过现有的命令行工具调用API,存在至少以下缺点:由于调用 API的命令行工具是通过SDK包的二次封装来完成的,所以命令行工具对SDK 包具有很强的依赖性,命令行工具对服务的适配性差,且容易造成命令行工具由于API更新,SDK包不能同步更新,而不能工作的情况。比如:当远程服务器存在多个不同的服务时,命令行工具必须依赖多个SDK(每一个服务都需要一个特定的SDK与之匹配),且每个SDK与命令行工具的实现必须采用一致的方法,如果无法保证SDK与命令行工具的实现流程一致,那么命令行工具就需要逐个适配不同服务的SDK;或者相同服务存在多个API时,命令行工具需要兼容不同版本,且需要安装多个版本的SDK,以实现API的调用。
发明内容
本申请实施例提供的调用应用编程接口的方法和装置,通过从元数据文件中调用所有的应用程序接口,以实现调用API的命令行工具不再依赖SDK 包,提高命令行工具对服务的适配性。
为实现上述目的,本申请实施例提供了一种调用应用编程接口的方法,该方法包括:
解析用户输入的调用操作请求,获取调用操作请求中的至少一个第一数据信息;根据至少一个第一数据信息调用相应的应用编程接口,从元数据文件中获取至少一个第二数据信息;根据至少一个第一数据信息与至少一个第二数据信息对至少一个第一数据信息进行合法验证;当至少一个第一数据信息合法验证通过时,根据至少一个第一数据信息和至少一个第二数据信息生成请求消息;向远程服务器发送请求消息,以用于远程服务器根据请求消息返回结果信息。
本申请实施例还提供了一种系统,该系统包括:包括命令解析模块、元数据解析模块、元数据描述模块、生成请求模块和公共连网模块;
命令解析模块,用于解析用户输入的调用操作请求,获取调用操作请求中的至少一个第一数据信息;元数据解析模块还用于,根据至少一个第一数据信息从元数据描述模块的元数据文件中获取至少一个第二数据信息;命令解析模块还用于,根据至少一个第一数据信息与至少一个第二数据信息对至少一个第一数据信息进行合法验证(或匹配),以确定需要调用的应用编程接口;生成请求模块,用于当至少一个第一数据信息合法验证通过时,根据至少一个第一数据信息和至少一个第二数据信息生成请求消息;公共连网模块,用于通过调用的应用编程接口向远程服务器发送请求消息,以用于远程服务器根据请求消息返回结果信息。
本申请实施例提供的调用应用编程接口的方法和系统,根据解析用户输入的调用操作请求获取第一数据信息,根据第一数据信息调用相应的应用编程接口,从元数据文件中获取第二数据信息,并根据第一数据信息和第二数据信息对第一数据信息进行匹配,以确定调用的应用编程接口,根据第一数据信息和第二数据信息生成请求消息,并通过调用的应用编程接口发送给远程服务器,避免了现有技术中调用API的命令行工具依赖SDK包,提高了命令行工具对服务的适配性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中命令行工具调用API的系统示意图;
图2为本申请实施例提供的系统结构示意图;
图3为本申请实施例提供的调用应用编程接口的方法的流程图;
图4为本申请实施例提供的元数据文件更新方法的流程图;
图5为本申请另一实施例提供的元数据文件更新方法的流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本申请保护的范围。
图2为本申请实施例提供的系统结构示意图。如图2所示的系统200包括交互模块210、命令解析模块220、元数据解析模块230、元数据描述模块 240、生成请求模块250、签名模块260和公共连网模块270。
该系统200中的交互模块210用于接收用户输入的命令行,该命令行可以为指示调用操作请求,用于指示系统调用应用编程接口(Application Programming Interface,API),并执行相应的操作,例如向远程服务器发送请求消息,以便于远端服务器根据请求消息返回相应的资源信息。该命令行还可以为元数据文件更新请求,用于指示系统更新元数据描述模块240中的元数据文件。
其中,用户输入的命令行可以包括服务名称、应用编程接口名称、应用编程接口参数。例如用户输入的命令为:
aliyuncli ecs StartInstance—InstanceId 12345—port 80
或者
aliyuncli ecs StopInstance—instanceId 12345—port 443
其中,aliyuncli表示工具的名称;ecs表示服务名称; StartInstance/StopInstance表示操作;InstanceId、port表示应用编程接口参数;12345和80/43分别为InstanceId、port的参数内容,port 80表示http网络,port 443表示https网络协议。
例如,在用户数据的其他命令行中包括应用编程接口名称,例如 CreateInstance等。
应理解,以上命令行中的服务名称、应用编程接口名称和应用编程接口参数是为了详细描述本申请的方案进行的举例说明,且用户输入的命令行还可以包括其他信息,例如,应用编程接口风格、签名方式等调用应用编程接口的相关信息,以上示例的内容并不限制本申请的技术方案。
但为了提高用户的体验,在本申请实施例中,以用户输入的命令行包括服务名称、应用编程接口名称和应用编程接口参数为例对本申请的技术方案进行详细说明。
当交互模块210接收到用户输入的命令行时,交互模块210会对用户输入的命令行进行“拼装”,该“拼装”将命令行中的参数名称和值进行处理,例如,可以将参数名称和值放到某个数据结构,典型的入字典类型或者map 类型的数据结构,以便于用户输入的信息在系统中继续传递。
假设用户输入的命令行为:
aliyuncli ecs StartInstance—InstanceId 12345—port 80—region cn-hangzhou-----;
交互模块210会将命令行拼装为:
{“InstanceId”:“12345”,“port”:“80”,“region”:“cn-hangzhou”}
其中,aliyuncli一般是工具的名称;ecs表示服务名称;StartInstance表示操作;InstanceId、port和region均为应用编程接口参数;12345、80和 cn-hangzhou依次为InstanceId、port、region应用编程接口参数的参数内容。
在本申请实施例中,交互模块210还可以对接收到命令行进行转换,在应用中可能以大写的方式为可能被调用的函数命名,比如函数名称为“CreateInstance”,在函数调用过程中,用户输入了“createinstance”,在命令行工具做大小写兼容的情况下,交互模块210将用户输入的“createinstance”转换为“CreateInstance”,以进行函数的调用。
命令解析模块220用于解析交互模块210接收的用户输入的命令行,确定交互模块210接收到的命令行是调用操作请求还是元数据文件更新请求。
当解析命令行为调用操作请求时,以便于根据命令行中的应用编程接口名称,应用编程接口参数等信息与从元数据文件中获取的相应的应用编程接口名称,应用编程接口参数等信息逐一匹配,以确定需要调用的应用编程接口,并向生成请求模块250发送该命令行和从原数据文件中获取的信息。
当解析命令行为元数据文件更新请求时,向公共连网模块270发送元数据文件更新请求,以便于公共连网模块270将该元数据文件更新请求发送给远程服务器,远程服务器根据元数据文件更新请求返回远程服务器端元数据文件的版本信息,以便于系统根据元数据描述模块240中的元数据文件的版本信息进行更新。
当远程服务器返回的远程服务器的元数据文件的版本信息与系统中元数据描述模块240中的元数据文件的版本信息一致时,该系统的元数据文件不需要更新;当远程服务器返回的远程服务器的元数据文件的版本信息与系统中元数据描述模块240中的元数据文件的版本信息不一致时,系统通过公共连网模块270从远程服务器下载元数据文件,并覆盖元数据描述模块240中的原有的元数据文件,以完成元数据文件的更新。
应理解,在本申请实施例中,当系统需要更新或升级时,也可以通过除版本信息之外的其他信息对系统的原文件进行更新或升级,例如匹配远程服务端与系统中任一原文件的信息不相同时,原文件版本的上线日期等信息。
元数据解析模块230用于解析元数据描述模块240中的元数据文件中的数据。当命令解析模块220根据用户输入的命令行通过元数据解析模块230 解析从元数据描述模块240中获取的元数据文件,获取与用户输入的命令行相应的数据信息,例如用户输入的命令行包括服务名称(或称为产品名称), API的名称,API的参数,API接口信息等其他信息,那么命令解析模块220 根据用户输入的API接口信息,通过元数据解析模块230从元数据描述模块 240中的元数据文件中获取与用户输入的命令行包括的服务名称,API的名称, API的参数,API接口信息等其他信息相应的信息。
其中,用户输入的命令行还可以包括API风格、签名方式、元数据文件的版本信息、独立软件开发商(Independent Software Vendors,ISV)协议等信息。
元数据描述模块240包括多个元数据文件。每个元数据文件中都包括一个接口的名称、类型、风格、元数据文件的版本信息;接口入参的名称、类型、是否必填、默认值等信息;返回值的参数名称、类型以及可能的报错信息等。元数据文件可以以xml或JSON等通用方式保存。
下面以xml格式的元数据(Matedate)文件为例,详细阐述元数据文件对API描述的方式:
在该示例中,元数据描述文件包括API属性信息、API入参信息、ISV协议(IsvProtocol)描述和返回参数(ResultMapping)描述。
API属性信息包括API所属服务(或产品)信息(product)、API的名称(name)、API状态(status)、版本(version)、规则或者称作协议(policy)、 API风格(style)等信息。API属性信息还可以根据需要增加其他字段。根据API属性信息可以作为匹配规则,在生成调用时使用。
API入参信息,即示例中每一个参数,为每一个参数定义了其名称(name), 展示名(tagName),类型(type),位置(position,决定参数被如何拼装),是否必填(required),默认值(default),数值转换(Switch&Case)等信息。通过以上信息可以将入参进行全面描述,还可以根据需要增加例如最大最小值等属性,进一步对入参进行约束.以上信息用于在生成调用时对入参进行定义,影响API调用时入参的拼装方式和约束。
ISV协议描述是对调用该API使用的协议进行描述,用于确定API的调用方式。在本申请实施例中关于接入点,调用规则等信息可以在ISV协议描述中进行定义。
返回参数描述是对返回值的每个参数,定义其名称(name),类型(type), 展示名(tagName),由数组(Array)以及结构体(Struct)组成的,复杂数据类型的描述,null是否转化为空标签(nullToEmpty)等信息。返回参数描述可用于调用后返回值的对象。
通过以上示例,可以完成API属性及完整内容的描述,满足通用元数据文件对API的描述需求。在本申请实施例中,在元数据描述文件对API的描述中,还可以扩展新的属性,增加更多API特征的描述,在本申请实施例中对此不作限制。
采用本申请示例所示的元数据文件,通过本申请图2所示的系统,以及下文图3所示的调用应用编程接口的方法和图4、图5所示的元数据文件更新的方法,可以轻松实现API的调用,解决了不同服务(或产品)的兼容性和相同服务(或产品)的不同版本的兼容性,利用通用的元数据文件,可以使得命令行工具具有极大的兼容性和可扩展性。
生成请求模块250用于接收命令解析模块220发送的解析后的命令行, (用户输入的);根据解析后的命令行中API风格确定生成请求的类型,根据生成请求的类型和命令行中签名方式,通过签名模块260计算签名,最终生成请求消息。
根据解析后的命令行中API风格确定生成请求的类型可以通过组织命令行的格式和参数顺序,将命令行拼成一个唯一确定的字符串,该字符串用于签名。在本申请实施例中,不同的API风格对应的参数顺序可能不一致,该参数的顺序就是为了签名时保证与被签名的字符串一致。
应理解,签名过后向远程服务器发送的请求消息,例如:http/https请求的参数顺序可以任一排列。
签名模块260用于被生成请求模块250调用,生成请求消息需要的签名。需要说明的是,在命令行工具调用API时,都会采用签名校验机制进行验证。
公共连网模块270负责向远程服务器发送请求消息,例如:http/https 请求;或者向远程服务器发送元数据文件更新请求,以用于更新元数据描述模块240中的元数据文件。
通过本申请实施例提供的系统,命令解析模块根据解析用户输入的调用操作请求获取第一数据信息,并根据第一数据信息从元数据描述模块的元数据文件中获取第二数据信息,根据第一数据信息和第二数据信息对第一数据信息,确定需要调用的应用编程接口生成请求模块根据第一数据信息和二数据信息生成请求消息,并通过公共连网模块发送给远程服务器。以实现调用 API的命令行工具不再依赖SDK包,提高命令行工具对服务的适配性。
以上描述了本申请实施例提供的系统,下面结合图3对图2所示系统调用应用编程接口的方法进行详细的描述。
图3为本申请实施例提供的一种调用应用编程接口方法的流程图。如图3 所示,该方法300的执行主体为图2所示的系统200,该方法300包括以下步骤:
S310,解析用户输入的调用操作请求,获取调用操作请求中的至少一个第一数据信息。
该调用操作请求为解析后的命令行,命令行为用户输入的命令。该命令行用于指示系统调用相应的应用编程接口。至少一个第一数据信息可以为命令行中包括的信息,例如:服务名称、应用编程接口名称和应用编程接口参数等API调用的相关信息中的一个或多个信息。
S320,根据至少一个第一数据信息,从元数据文件中获取与至少一个第一数据信息相对应的至少一个第二数据信息。
至少一个第二数据信息包括与用户输入的命令行相对应的信息,例如:服务名称、应用编程接口名称和应用编程接口参数等信息中的一个或多个信息。在本申请实施例中,S310中的至少一个第一数据信息与S320中的至少一个第二数据信息可以为相同的信息,也可以为不相同的信息。
应理解,在该实施例中,第一数据信息和第二数据信息中的“第一”和“第二”只是为了区别数据信息的来源不同,对本申请实施例的保护范围不构成任何限制。
需要说明的是,在本申请实施例的方案中,S310和S320可以通过图2所示的命令解析模块220来执行。
具体的,命令行解析模块解析用户输入的命令行,获取命令行中包括的至少一个第一数据信息,根据至少一个第一数据信息,例如至少一个第一数据信息中的应用编程接口名称,通过元数据解析模块从相对应元数据文件中获取与至少一个第一数据信息相对应的至少一个第二数据信息,其中,元数据文件是从元数据描述模块中获取的。
S330,根据至少一个第一数据信息与至少一个第二数据信息确定调用的应用编程接口。
确定调用的应用编程接口可以为:命令解析模块将获取到的至少一个第一数据信息中的至少一个数据信息与从元数据文件中获取到的至少一个第二数据信息中相应的至少一个数据信息进行一一匹配,例如将第一数据信息服务名称与第二数据信息中的服务名称进行匹配;将第一数据信息API名称与第二数据信息中的API名称进行匹配;将第一数据信息API参数与第二数据信息中的API参数进行匹配等等,以验证用户输入的第一数据信息是否有可以调用的应用编程接口。
在本申请实施例中,命令解析模块可以先根据解析命令行获取的至少一个第一数据信息,从元数据文件中获取与至少一个第一数据信息相对应的服务名称,API名称和API参数,待获取的数据信息存在可以调用的应用编程接口时,再从元数据文件中进一步API调用需要的其他信息,例如:元数据文件的版本信息、API风格,签名方法等信息。
在本申请实施例中,当至少一个第一数据信息中的任一数据信息未通过合法匹配时,该系统API的调用都会结束,并返回信息错误信息,该信息可以通过图2所示系统中的交互界面210进行信息显示。
S340,根据至少一个第一数据信息和至少一个第二数据信息生成请求消息。
当S330中对用户输入的至少一个第一数据信息中每一数据信息都匹配成功时,对用户输入的至少一个第一数据信息和从与数据文件中获取的所有的信息进行组织生成请求消息,该步骤可以通过图2所示系统中的生成请求模块250来执行。
具体过程可以为,当S330对用户输入的至少一个第一数据信息匹配成功时,生成请求模块接收命令解析模块发送的从元数据文件中获取的所有的第二数据信息和至少一个第一数据信息,生成请求模块根据接收到的信息调用图2系统所示的签名模块260计算签名。生成请求模块将计算的签名和至少一个第一数据信息生成请求消息。
可选地,在本申请实施例中,根据至少一个第一数据信息和至少一个第二数据信息生成请求消息可以包括:根据至少一个第一数据信息和应用编程接口风格、签名方式计算签名;根据签名、至少一个第一数据信息和至少第一第二数据信息生成请求消息。
例如,需要第一数据信息中的应用编程接口参数的参数内容和第二数据信息中的ISV协议以及计算的签名进行拼接,组织生成请求信息。
可选地,在本申请实施例中,根据至少一个第一数据信息和应用编程接口风格、签名方式计算签名可以包括:
根据应用编程接口风格确定生成请求消息的类型;根据请求消息的类型组织至少一个第一数据信息中的应用编程接口参数的顺序,将第一数据信息生成唯一的字符串;根据至少一个第一数据信息中的签名方式和唯一的字符串计算签名。
应理解,在API调用的过程中,签名是一个必须的步骤,以提高数据传输的安全性。
S350,通过调用应用编程接口向远程服务器发送请求消息,以用于远程服务器根据请求消息返回结果信息。
当S340生成请求消息之后,将请求消息发送给远程服务器,完成API的调用,并获取远程服务器返回的结果信息。
S350可以通过图2所述系统中的公共连网模块270连实现,具体为当生成请求模块将调用签名模块计算的签名和第一数据信息进行拼装生成请求消息时,通过公共连网模块向远程服务器发送该请求消息,以便于远程服务器根据该请求消息返回结果信息。
远程终端返回的结果信息可以通过在系统的显示界面上进行显示,在本申请实施例中,结果信息可以通过图2所示系统的交互界面进行显示。
可选地,在本申请实施例中,在解析用户输入的调用操作请求之前,该方法300还包括S360接收用户输入的操作请求。
该步骤可以通过图2所示的系统中的交互模块210实现。在本申请实施例中,交互模块210还用于显示远程服务器返回的结果信息。
通过本申请实施例提供的调用应用编程接口的方法,根据解析用户输入的调用操作请求获取第一数据信息,根据第一数据信息调用相应的应用编程接口,从元数据文件中获取第二数据信息,并根据第一数据信息和第二数据信息对第一数据信息进行合法验证,当第一数据信息合法验证通过时,根据第一数据信息和第二数据信息生成请求消息,并发送给远程服务器。实现了调用API的命令行工具不再依赖SDK包,提高命令行工具对服务的适配性。
应理解,在本申请实施例中,“第一数据信息”和“第二数据信息”中的“第一”和“第二”只是为了区别用户输入的数据信息与从元数据文件中获取的数据信息,并不构成对本申请技术方案的限制。
通过图2所示的系统,还可以实现元数据文件的更新升级,下面结合图4 所示的元数据文件更新的方法的流程图,对本申请实施例的技术方案进行详细的说明。
图4为本申请实施例提供的元数据文件更新方法的流程图。如图4所示,在方法400的执行主体为图2所示的系统200,该方法400包括以下步骤:
S410,解析用户输入的元数据文件更新请求。
元数据文件更新请求可以为用户输入的检查更新的命令,用于指示系统确定元数据文件是否为最新版本的元数据文件。
该步骤可以由图2所示系统的命令解析模块210来实现。
S420,向远程服务器发送元数据文件更新请求,以用于远程服务器根据元数据文件更新请求返回第一版本信息,第一版本信息为远程服务器中元数据文件的版本信息。
第一版本信息为当前远程服务器中元数据文件的版本信息,例如版本信息为V20250505。该步骤可以通过图2所示系统中的公共连网模块270来实现,具体为命令解析模块通过公共连网模块向远程服务器发送元数据文件更新请求,以便于远程服务器根据元数据文件更新请求返回远程服务器中当前元数据文件的版本信息。
S430,根据第一版本信息更新元数据文件。
更新的元数据文件为当前系统的元数据文件。
可选地,在本申请实施例中,根据第一版本信息更新当前系统的元数据文件可以包括:
从远程服务器下载第一版本信息相对应的元数据文件;将第一版本信息对应的元数据文件覆盖第二版本信息对应的元数据文件。
该步骤可以通过图2所示系统的命令解析模块220来实现。具体为,通过公共连网模块从远程服务器下载第一版本信息对应的元数据文件,并将下载的第一版本信息对应的元数据文件覆盖系统当前的元数据文件,以实现元数据文件的更新或升级。
通过本申请实施例提供的元数据文件更新的方法或系统,通过命令解析模块解析用户输入的元数据文件更新请求,并向远程服务器发送元数据文件更新请求,以接收远程服务器返回的远程服务器的元数据文件的版本信息,并根据版本信息更新当前系统的元数据文件,实现了元数据文件的更新或升级,避免先有技术中命令行工具由于API更新,SDK包不能同步更新,造成的不能工作的问题。
可选地,在本申请实施例中,如图5所示,该方法还包括:
S440,接收用户输入的元数据文件更新请求。
具体的,该步骤可以通过图2所示系统中的交互模块210来实现。
在本申请实施例中,交互模块210还可以用来显示远程服务器下载的第一版本信息对应的元数据文件。
可选地,在本申请另一实施例中,如图5所示,该方法还包括400还包括:
S450,根据元数据文件更新请求获取第二版本信息,第二版本信息为当前元数据文件的版本信息。
第二版本信息为当前系统的元数据文件的版本信息,例如版本信息为V20240526。该步骤可以通过图2所示的系统中的命令解析模块220来完成,命令解析模块根据元数据文件更新请求从元数据描述模块的元数据文件中获取版本信息。
应理解,在本申请实施例中,执行S420和S450的先后顺序可以互换,在本申请实施例中执行S420和S450的先后顺序不作任何限制。
可选地,在本申请实施例中,如图5所示,所述方法400还包括:
S460,确定第二版本信息是否为第一版本信息。
在本申请实施例中,当第二版本信息与第一版本信息相同时,不需要更新当前系统的元数据文件。当第二版本信息与第一版本信息不相同时,需要根据第一版本信息更新当前系统的元数据文件。
该步骤可以由图2所示系统中的命令解析模块220来实现。
通过本申请实施例提供的元数据文件更新的方法或系统,通过命令解析模块解析用户输入的元数据文件更新请求,并向远程服务器发送元数据文件更新请求,以接收远程服务器返回的远程服务器的元数据文件的版本信息,并根据版本信息更新当前系统的元数据文件,实现了元数据文件的更新或升级,避免先有技术中命令行工具由于API更新,SDK包不能同步更新,造成的不能工作的问题。同时通过命令解析模块确定当前系统的元数据文件的版本信息与远程服务器元数据文件的版本信息是否一致,节省了系统元数据文件更新或升级的功耗,降低了系通过元数据文件更新或升级的是时间消耗。
应理解,在本申请实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器 (RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (21)
1.一种调用应用编程接口的方法,其特征在于,所述方法包括:解析用户输入的调用操作请求,获取所述调用操作请求中的至少一个第一数据信息,所述至少一个第一数据信息为调用远程服务器提供的开放应用编程接口API的信息;
根据所述至少一个第一数据信息从元数据文件中获取与所述至少一个第一数据信息对应的至少一个第二数据信息,所述元数据文件是预先从所述远程服务器下载的;
将所述至少一个第一数据信息中的至少一个数据信息与所述至少一个第二数据信息中相对应的至少一个数据信息进行逐一匹配,当所述至少一个第一数据信息与相对应的所述至少一个第二数据信息分别匹配时,确定调用的开放API;
根据所述至少一个第一数据信息和所述至少一个第二数据信息生成请求消息;
通过所述开放API向所述远程服务器发送所述请求消息,以使得所述远程服务器根据所述请求消息返回结果信息;
其中,所述至少一个第二数据信息包括应用编程接口风格和签名方式;以及
所述根据所述至少一个第一数据信息和所述至少一个第二数据信息生成请求消息,包括:
根据所述至少一个第一数据信息和所述应用编程接口风格、所述签名方式计算签名;
根据所述签名、所述至少一个第一数据信息和所述至少一个第二数据信息生成所述请求消息。
2.根据权利要求1所述的方法,其特征在于,所述至少一个第一数据信息和所述至少一个第二数据信息分别包括服务名称、应用编程接口名称、应用编程接口参数中的一个或多个信息。
3.根据权利要求2所述的方法,其特征在于,所述根据所述至少一个第一数据信息和所述应用编程接口风格、所述签名方式计算签名,包括:
根据所述应用编程接口风格确定生成所述请求消息的类型;
根据所述请求消息的类型组织所述至少一个第一数据信息中的应用编程接口参数的顺序,将所述第一数据信息生成唯一的字符串;
根据所述签名方式和所述唯一的字符串计算签名。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收用户输入的所述调用操作请求。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
解析用户输入的元数据文件更新请求;
向所述远程服务器发送所述元数据文件更新请求,以使得所述远程服务器根据所述元数据文件更新请求返回第一版本信息,所述第一版本信息为所述远程服务器中元数据文件的版本信息;
根据所述第一版本信息更新元数据文件。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
根据所述元数据文件更新请求获取第二版本信息,所述第二版本信息为当前元数据文件的版本信息。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
确定所述第二版本信息是否为第一版本信息。
8.根据权利要求7所述的方法,其特征在于,当确定所述第二版本信息与所述第一版本信息不同时,更新所述第二版本信息对应的元数据文件。
9.根据权利要求8所述的方法,其特征在于,所述更新所述第二版本信息对应的元数据文件,包括:
从所述远程服务器下载所述第一版本信息相对应的元数据文件;
将所述第一版本信息对应的元数据文件覆盖所述第二版本信息对应的元数据文件。
10.根据权利要求5所述的方法,其特征在于,所述方法还包括:
接收用户输入的所述元数据文件更新请求。
11.一种调用应用编程接口的系统,其特征在于,所述系统包括命令解析模块、元数据解析模块、元数据描述模块、生成请求模块和公共连网模块;
所述命令解析模块,用于解析用户输入的调用操作请求,获取所述调用操作请求中的至少一个第一数据信息,所述至少一个第一数据信息为调用远程服务器提供的开放应用编程接口API的信息;
所述元数据解析模块用于,根据所述至少一个第一数据信息,从所述元数据描述模块的元数据文件中获取与所述至少一个第一数据信息对应的至少一个第二数据信息,所述元数据文件是预先从所述远程服务器下载的;
所述命令解析模块还用于,将所述至少一个第一数据信息中的至少一个数据信息与所述至少一个第二数据信息中相对应的至少一个数据信息进行逐一匹配,当所述至少一个第一数据信息与相对应的所述至少一个第二数据信息分别匹配时,确定调用的开放API;
所述生成请求模块,用于根据所述至少一个第一数据信息和所述至少一个第二数据信息生成请求消息;
所述公共连网模块,用于通过所述开放API向所述远程服务器发送所述请求消息,以使得所述远程服务器根据所述请求消息返回结果信息;
其中,所述至少一个第二数据信息包括应用编程接口风格和签名方式;以及
所述系统还包括签名模块,所述生成请求模块具体用于,
根据所述至少一个第一数据信息和所述应用编程接口风格、所述签名方式调用所述签名模块计算签名;
根据所述签名、所述至少一个第一数据信息和所述至少一个第二数据信息生成所述请求消息。
12.根据权利要求11所述的系统,其特征在于,所述至少一个第一数据信息和所述至少一个第二数据信息分别包括服务名称、应用编程接口名称和应用编程接口参数中的一个或多个信息。
13.根据权利要求12所述的系统,其特征在于,所述生成请求模块具体用于,
根据所述应用编程接口风格确定生成所述请求消息的类型;
根据所述请求消息的类型组织所述至少一个第一数据信息中的应用编程接口参数的顺序,将所述第一数据信息生成唯一的字符串;
根据所述签名方式和所述唯一的字符串计算签名。
14.根据权利要求11所述的系统,其特征在于,所述系统还包括交互模块,用于接收用户输入的所述调用操作请求。
15.根据权利要求11所述的系统,所述元数据描述模块用于存储至少一个所述元数据文件。
16.根据权利要求11-15任一项所述的系统,其特征在于,
所述命令解析模块还用于,解析用户输入的元数据文件更新请求;
所述公共连网模块还用于,向所述远程服务器发送所述元数据文件更新请求,以使得所述远程服务器根据所述元数据文件更新请求返回第一版本信息,所述第一版本信息为所述远程服务器中元数据文件的版本信息;
所述命令解析模块还用于,根据所述第一版本信息更新元数据文件。
17.根据权利要求16所述的系统,其特征在于,所述命令解析模块还用于,根据所述元数据文件更新请求获取第二版本信息,所述第二版本信息为当前元数据文件的版本信息。
18.根据权利要求17所述的系统,其特征在于,所述命令解析模块还用于,确定所述第二版本信息是否为第一版本信息。
19.根据权利要求18所述的系统,其特征在于,当确定所述第二版本信息与所述第一版本信息不同时,所述命令解析模块还用于更新所述第二版本信息对应的元数据文件。
20.根据权利要求19所述的系统,其特征在于,所述命令解析模块具体用于,
通过所述公共连网模块从所述远程服务器下载所述第一版本信息相对应的元数据文件;
将所述第一版本信息对应的元数据文件覆盖所述元数据描述模块中的所述第二版本信息对应的元数据文件。
21.根据权利要求14所述的系统,其特征在于,所述交互模块还用于接收用户输入的元数据文件更新请求。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510956283.1A CN106897153B (zh) | 2015-12-18 | 2015-12-18 | 调用应用编程接口的方法和系统 |
PCT/CN2016/108979 WO2017101727A1 (zh) | 2015-12-18 | 2016-12-08 | 调用应用编程接口的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510956283.1A CN106897153B (zh) | 2015-12-18 | 2015-12-18 | 调用应用编程接口的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106897153A CN106897153A (zh) | 2017-06-27 |
CN106897153B true CN106897153B (zh) | 2021-07-30 |
Family
ID=59055819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510956283.1A Active CN106897153B (zh) | 2015-12-18 | 2015-12-18 | 调用应用编程接口的方法和系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106897153B (zh) |
WO (1) | WO2017101727A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110855745B (zh) * | 2019-10-10 | 2022-05-17 | 上海瀚之友信息技术服务有限公司 | 一种通讯软件的程序的接入方法 |
CN111143094B (zh) * | 2020-01-02 | 2023-05-16 | 上海卓易科技股份有限公司 | 一种信息流聚合系统及其控制方法 |
CN111190641B (zh) * | 2020-01-23 | 2021-08-17 | 复旦大学 | 基于API分析的Java第三方库版本统一推荐方法 |
CN111400016B (zh) * | 2020-03-25 | 2023-05-16 | 新华三信息安全技术有限公司 | 一种调用应用程序接口函数的方法和设备 |
CN112860225A (zh) * | 2021-01-15 | 2021-05-28 | 哈尔滨鸿德亦泰数码科技有限责任公司 | 一种可扩展性优越的智慧灌区e平台及其二次开发结构构建方法 |
CN114051058B (zh) * | 2021-09-27 | 2024-03-26 | 北京旷视科技有限公司 | 接口调用方法、平台、电子设备及计算机存储介质 |
CN115695555B (zh) * | 2022-09-06 | 2023-09-12 | 恒生电子股份有限公司 | 接口调用方法、系统、处理设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101562621A (zh) * | 2009-05-25 | 2009-10-21 | 阿里巴巴集团控股有限公司 | 一种用户授权的方法、系统和装置 |
CN102281311A (zh) * | 2010-06-10 | 2011-12-14 | 阿里巴巴集团控股有限公司 | 一种基于开放应用编程接口实现网络业务的方法、系统及装置 |
CN104077179A (zh) * | 2014-06-16 | 2014-10-01 | 武汉理工大学 | 一种面向Web浏览器的本地API调用方法 |
CN104158856A (zh) * | 2014-07-23 | 2014-11-19 | 武汉理工大学 | 无需预先构建安全会话的本地api调用方法 |
CN104380661A (zh) * | 2014-06-23 | 2015-02-25 | 华为技术有限公司 | 一种路由设备的操作方法、路由设备和终端设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8484204B2 (en) * | 2008-08-28 | 2013-07-09 | Microsoft Corporation | Dynamic metadata |
US20130055291A1 (en) * | 2011-08-31 | 2013-02-28 | Microsoft Corporation | Describing native application programming interfaces of an operating system with metadata |
CN102739631A (zh) * | 2011-09-23 | 2012-10-17 | 新奥特(北京)视频技术有限公司 | 一种api接口支持多协议格式文件获取的方法及装置 |
-
2015
- 2015-12-18 CN CN201510956283.1A patent/CN106897153B/zh active Active
-
2016
- 2016-12-08 WO PCT/CN2016/108979 patent/WO2017101727A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101562621A (zh) * | 2009-05-25 | 2009-10-21 | 阿里巴巴集团控股有限公司 | 一种用户授权的方法、系统和装置 |
CN102281311A (zh) * | 2010-06-10 | 2011-12-14 | 阿里巴巴集团控股有限公司 | 一种基于开放应用编程接口实现网络业务的方法、系统及装置 |
CN104077179A (zh) * | 2014-06-16 | 2014-10-01 | 武汉理工大学 | 一种面向Web浏览器的本地API调用方法 |
CN104380661A (zh) * | 2014-06-23 | 2015-02-25 | 华为技术有限公司 | 一种路由设备的操作方法、路由设备和终端设备 |
CN104158856A (zh) * | 2014-07-23 | 2014-11-19 | 武汉理工大学 | 无需预先构建安全会话的本地api调用方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106897153A (zh) | 2017-06-27 |
WO2017101727A1 (zh) | 2017-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106897153B (zh) | 调用应用编程接口的方法和系统 | |
KR102105261B1 (ko) | 인터페이스 데이터 디스플레이 방법 및 장치 | |
CN110428216B (zh) | 业务流程管控方法、装置、计算机设备和存储介质 | |
EP3011442B1 (en) | Method and apparatus for customized software development kit (sdk) generation | |
EP3011444B1 (en) | Method and apparatus for code virtualization and remote process call generation | |
US20110154305A1 (en) | System and method for remotely compiling multi-platform native applications for mobile devices | |
US10007532B1 (en) | Data infrastructure for cross-platform cross-device API inter-connectivity | |
US10394627B2 (en) | Asynchronous C#-JS data binding bridge | |
WO2018210096A1 (zh) | 一种基于规则引擎的规则配置方法、终端、设备以及存储介质 | |
US9602329B1 (en) | Dynamic remote procedure call | |
CN109284198A (zh) | 一种校验数据的方法和装置 | |
CN113434175B (zh) | 数据处理方法、装置、存储介质及设备 | |
CN111428132A (zh) | 数据的校验方法及装置、计算机存储介质、电子设备 | |
KR102226463B1 (ko) | 프로세스자동화프로그램과 연동되는 ui/ux솔루션제공서버, 이를 포함하는 프로세스자동화시스템, 이를 이용한 프로세스자동화방법, 및 이를 실행하기 위한 컴퓨터 프로그램 | |
CN113986256A (zh) | 一种发布应用程序的方法、装置、电子设备及存储介质 | |
US20190311050A1 (en) | Method and system for generating schemas | |
CN114816361A (zh) | 拼搭工程生成方法、装置、设备、介质和程序产品 | |
US20140033167A1 (en) | Method and system for generating a manifestation of a model in actionscript | |
US20180032329A1 (en) | Customized runtime environment | |
US10606569B2 (en) | Declarative configuration elements | |
CN113760987A (zh) | 数据处理方法和数据处理平台 | |
CN111338717A (zh) | 接口调用方法、应用程序升级方法及服务器和客户端 | |
WO2022099913A1 (zh) | 界面配置方法、装置、设备及介质 | |
CN110569069A (zh) | 一种配置管理方法、配置管理系统及具有存储功能的装置 | |
TWI794154B (zh) | 調用應用程式介面的方法和系統 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |