CN102203736B - 开放应用程序编程接口调用方法及设备 - Google Patents

开放应用程序编程接口调用方法及设备 Download PDF

Info

Publication number
CN102203736B
CN102203736B CN201180000546.1A CN201180000546A CN102203736B CN 102203736 B CN102203736 B CN 102203736B CN 201180000546 A CN201180000546 A CN 201180000546A CN 102203736 B CN102203736 B CN 102203736B
Authority
CN
China
Prior art keywords
openapi
calling
target
call
user
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
CN201180000546.1A
Other languages
English (en)
Other versions
CN102203736A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN102203736A publication Critical patent/CN102203736A/zh
Application granted granted Critical
Publication of CN102203736B publication Critical patent/CN102203736B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/541Interprogram 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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Telephone Function (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明实施例提供一种开放应用程序编程接口调用方法及设备。其中,方法包括:获取与用户的调用请求相对应的目标OpenAPI方法;向用户提供与参数列表,以获取目标OpenAPI方法的参数信息;根据参数信息和与目标OpenAPI方法相适应的调用规则,对目标OpenAPI方法进行调用。采用本发明实施例的技术方案,可以实现采用统一方式调用不同OpenAPI,提高调用OpenAPI的效率。

Description

开放应用程序编程接口调用方法及设备
技术领域
本发明实施例涉及编程接口技术,尤其涉及一种开放应用程序编程接口(Open Application Programming Interface;简称为:OpenAPI)调用方法及设备。
背景技术
目前,互联网(Internet)中存在着大量的开放OpenAPI(OpenAPI),用户通过学习OpenAPI的说明文档,可以调用这些OpenAPI实现相应的功能。
但是,由于不同的OpenAPI所采用的通信协议和调用方式都不尽相同。对于直接调用OpenAPI中某项功能的用户,以及对于利用已有OpenAPI进行二次开发的Web应用开发者来说,不仅需要学习OpenAPI的说明文档从整体上了解OpenAPI的功能和结构,还要需要对该OpenAPI所采用的通信机制进行学习,以在基本掌握调用OpenAPI的方法之后,才能对该OpenAPI进行调用,并得到该OpenAPI所提供的开放能力。
由上述可见,由于不同OpenAPI所采用的通信机制不同,使用者调用OpenAPI实现开放能力的过程极为不方便、不简洁,调用OpenAPI的效率较低,同时,也无法采用统一的调用流程实现对不同OpenAPI的调用。
发明内容
本发明实施例提供一种开放应用程序编程接口调用方法及设备,用以实现采用统一方式调用不同OpenAPI,提高调用OpenAPI的效率。
本发明实施例提供一种开放应用程序编程接口OpenAPI调用方法,包括:
获取与用户的调用请求相对应的目标OpenAPI方法;
向所述用户提供与所述目标OpenAPI方法对应的参数列表,以获取所述目标OpenAPI方法的参数信息;
根据所述参数信息和与所述目标OpenAPI方法相适应的调用规则,对所述目标OpenAPI方法进行调用。
本发明实施例提供一种开放应用程序编程接口OpenAPI调用设备,包括:
方法获取单元,用于获取与用户的调用请求相对应的目标OpenAPI方法;
参数获取单元,用于向所述用户提供与所述目标OpenAPI方法对应的参数列表,以获取所述目标OpenAPI方法的参数信息;
调用单元,用于根据所述参数信息和与所述目标OpenAPI方法相适应的调用规则,对所述目标OpenAPI方法进行调用。
本发明实施例的开放应用程序编程接口调用方法及设备,获取目标OpenAPI方法和目标OpenAPI方法对应的参数信息后,通过采用与目标OpenAPI方法相适应的调用规则,对目标OpenAPI方法进行调用,可以采用统一的调用流程实现对不同OpenAPI的调用,简化了调用过程,提高了调用OpenAPI的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的OpenAPI调用方法的流程图;
图2A为本发明一实施例提供的步骤101的一种实施方式的流程图;
图2B为本发明一实施例提供的步骤101的另一种实施方式的示意图;
图2C为本发明一实施例提供的步骤101的又一种实施方式的流程图;
图2D为本发明一实施例提供的步骤10c3的一种实施方式的流程图;
图2E为本发明一实施例提供的步骤10c13的另一种实施方式的流程图;
图3为本发明一实施例提供的步骤103的实施方式的流程图;
图4为本发明又一实施例提供的OpenAPI调用方法的流程图;
图5为本发明一实施例提供的目标OpenAPI方法采用Rest协议时的调用方法的流程图;
图6为本发明一实施例提供的目标OpenAPI方法采用Soap协议时的调用方法的流程图;
图7为本发明一实施例提供的目标OpenAPI方法采用Ajax协议时的调用方法的流程图;
图8为本发明一实施例提供的OpenAPI调用设备的结构示意图;
图9为本发明又一实施例提供的OpenAPI调用设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明一实施例提供的OpenAPI调用方法的流程图。如图1所示,本实施例的方法包括:
步骤101、获取与用户的调用请求相对应的目标OpenAPI方法。
具体的,OpenAPI调用设备提供获取用户调用请求的接口,以供用户输入其调用请求。待用户输入调用请求之后,OpenAPI调用设备根据调用请求通过查询OpenAIP信息库来获取相应的OpenAPI方法。
其中,OpenAPI信息库存储有大量OpenAPI的信息,这些OpenAPI的信息可由人工预先搜集获取。另外,结合每个OpenAPI又包括OpenAPI方法、每个OpenAPI方法又有对应的参数信息,故在本实施例中,根据OpenAPI的分层特点,OpenAPI的信息以列表的形式存储。即在OpenAPI信息库中包括OpenAPI列表、方法列表和参数列表。OpenAPI列表包括有大量OpenAPI的信息,其中,每个OpenAPI的信息主要包括OpenAPI的标识(ID)、OpenAPI的功能描述信息、OpenAPI的调用地址、采用的通信协议等等。方法列表包括OpenAPI列表中每个OpenAPI所对应的OpenAPI方法的信息,且OpenAPI列表与方法列表之间存在着映射关系;OpenAPI方法的信息主要包括OpenAPI方法的ID、功能描述信息等。参数列表包括方法列表中每个OpenAPI方法所对应的参数信息,即要调用一个OpenAPI方法所需的信息,且参数列表与方法列表之间存在着映射关系。
由上述可知,由于预先存储了大量OpenAPI的信息,OpenAPI调用设备可以在大量OpenAPI方法中搜索与用户的调用请求相适应的OpenAPI方法,提高了用户调用OpenAPI方法的成功率。
其中,OpenAPI调用设备可以向用户提供一调用界面,以使用户通过调用界面输入调用请求,并最终获取目标OpenAPI方法。
步骤102、向用户提供与目标OpenAPI方法对应的参数列表,以获取目标OpenAPI方法的参数信息。
具体的,OpenAPI调用设备根据目标OpenAPI方法查找OpenAPI信息库获取相应的参数列表,并通过一调用界面将参数列表提供给用户,以使用户输入相应的参数信息。其中,较优选的,该调用界面与步骤101的调用界面为同一调用界面。
当用户根据参数列表输入参数信息后,OpenAPI调用设备即可获得该参数信息。其中,不同OpenAPI方法对应的参数列表并不相同,OpenAPI调用设备获取到的参数信息也会不同。
步骤103、根据参数信息和与目标OpenAPI方法相适应的调用规则,对目标OpenAPI方法进行调用。
其中,不同OpenAPI采用的通信协议不同,例如可能会采用表述性状态转移(Representational State Transfer;简称为:Rest)协议、简单对象访问协议(Simple Object Access Protocol;简称为:Soap)或者Ajax(AsynchronousJavaScript and XML)协议。而每个协议对应的调用流程也不同。为解决用户在调用不同协议下的OpenAPI方法时,需要学习不同通信机制了解相应调用流程之后,通过不同的调用流程调用OpenAPI方法的问题,在本实施例中,OpenAPI调用设备预先存储有与各种通信协议相适应的调用规则,当OpenAPI调用设备需要调用OpenAPI方法时,根据OpenAPI方法采用的通信协议选择相适应的调用规则,根据该调用规则和参数信息自动完成向OpenAPI服务器中调用OpenAPI方法的过程,而不需用户对通信协议进行学习。
其中,OpenAPI服务器是指存储有大量OpenAPI的服务器,该服务器通常是由OpenAPI提供者部署的。
本实施例的OpenAPI调用方法,OpenAPI调用设备在获取目标OpenAPI方法和目标OpenAPI方法对应的参数信息后,通过采用与目标OpenAPI方法相适应的调用规则,对目标OpenAPI方法进行调用,对用户而言实现了采用统一的调用流程实现对不同OpenAPI的调用,简化了调用过程,提高了调用OpenAPI的效率。
本发明以下实施例提供了几种步骤101的具体实施方式。图2A为本发明一实施例提供的步骤101的一种实施方式的流程图。如图2A所示,本实施例的实施方式包括:
步骤10al、接收用户发送的第一调用请求。
具体的,当用户需要调用OpenAPI方法时,可以通过其OpenAPI调用工具向本实施例的OpenAPI调用设备发起调用请求(即第一调用请求)。在该实施例中,用户的调用请求中可以不包括任何与OpenAPI相关的信息,便于用户生成和发起调用请求。
步骤10a2、根据第一调用请求向用户提供OpenAPI列表,以使用户选择目标OpenAPI。
OpenAPI调用设备获取到用户的调用请求之后,根据调用请求查询OpenAPI信息库,将OpenAPI信息库中的整个OpenAPI列表提供给用户。具体的,OpenAPI调用设备通过调用界面将OpenAPI列表提供给用户。该OpenAPI列表包括多个OpenAPI的信息;用户在看到OpenAPI列表后,根据自己的需求从中选择一个OpenAPI(即目标OpenAPI)。在用户选择OpenAPI之后,OpenAPI调用设备就获取到目标OpenAPI。
步骤10a3、获取目标OpenAPI对应的方法列表,并将方法列表提供给用户以供用户选择。
OpenAPI调用设备获取到目标OpenAPI之后,根据目标OpenAPI查询OpenAPI信息库,获取与目标OpenAPI对应的方法列表。例如通过目标OpenAPI的ID,获取以该ID为索引的方法列表。然后,通过调用界面将方法列表提供给用户。该方法列表包括多个OpenAPI方法的信息,用户根据自己的需求选择一个OpenAPI方法(即目标OpenAPI方法)。
步骤10a4、根据用户的选择结果,获取目标OpenAPI方法。
具体的,在用户选择之后,OpenAPI调用设备就会获取到目标OpenAPI方法。之后,执行步骤102和步骤103,完成对目标OpenAPI方法的调用。
在本实施方式中,用户只需发出调用OpenAPI的调用请求,而无须表明要调用的OpenAPI的任何信息,由OpenAPI调用设备通过调用界面向用户提供相应信息,用户只需根据OpenAPI调用设备的统一流程进行操作即可,对用户而言实现了通过统一流程调用不同OpenAPI方法,提高了调用效率。
图2B为本发明一实施例提供的步骤101的另一种实施方式的示意图。如图2B所示,本实施例的实施方式包括:
步骤10b1、接收用户发送的第二调用请求,该第二调用请求包括OpenAPI关键字。
具体的,当用户需要调用OpenAPI方法时,可以通过其OpenAPI调用工具向本实施例的OpenAPI调用设备发起调用请求(即第二调用请求),在该第二调用请求中携带有OpenAPI关键字。OpenAPI关键字用于标识用户所要调用的OpenAPI;该OpenAPI关键字可以是与OpenAPI列表中存储的OpenAPI的信息中的一种,以便于OpenAPI调用设备能够根据OpenAPI关键字获取到相应的OpenAPI。例如:该OpenAPI关键字可以是OpenAPI的ID或调用地址等。
步骤10b2、根据OpenAPI关键字查询OpenAPI列表,获取与OpenAPI关键字对应的目标OpenAPI。
OpenAPI调用设备根据OpenAPI关键字在OpenAPI信息库的OpenAPI列表中进行查找,以获取符合OpenAPI关键字的OpenAPI,即目标OpenAPI。
步骤10b3、获取目标OpenAPI对应的方法列表,并将方法列表提供给用户以供用户选择。
其中,目标OpenAPI对应有多个OpenAPI方法,所有OpenAPI方法的相关信息被记录在该目标OpenAPI下的方法列表中。当OpenAPI调用设备获取目标OpenAPI之后,在OpenAPI信息库中查找,获取目标OpenAPI下的方法列表。然后,通过调用界面将方法列表提供给用户,以供用户从中选择一个OpenAPI方法,即目标OpenAPI方法。
步骤10b4、根据用户的选择结果,获取目标OpenAPI方法。
具体的,在用户选择之后,OpenAPI调用设备就会获取到目标OpenAPI方法。之后,执行步骤102和步骤103,完成对目标OpenAPI方法的调用。
在本实施方式中,用户通过其OpenAPI调用工具直接向OpenAPI调用设备发送携带OpenAPI关键字的调用请求,使得OpenAPI直接获取目标OpenAPI,减少了后续OpenAPI调用设备与用户的交互操作,用户与OpenAPI调用设备只需交互一次即可完成对目标OpenAPI方法的获取操作,提高了获取目标OpenAPI的效率。
在此说明,在结合图2A或图2B实现的OpenAPI调用方法,可以由OpenAPI调用设备中的一功能单元实现,该功能单元具体是对原有OpenAPI的进一步封装,在开发过程中保证了调用OpenAPI时接口的一致性,以向用户提供一种简单易用的调用接口,使得用户只需指定被调用的OpenAPI方法,并在填写参数信息后即可由OpenAPI调用设备自动发起对OpenAPI方法的调用。基于该功能单元的具体功能,将该功能单元称之为直接选定调用单元。
另外,在上述图2A和图2B中,可以将OpenAPI调用设备的功能划分为不同的功能层次。例如:选择目标OpenAPI或选择目标OpenAPI方法的操作由用户(User)完成,而向用户提供OpenAPI列表、方法列表或参数列表的操作可视为由OpenAPI调用设备的视图层完成。查询OpenAPI信息库,获取OpenAPI列表、方法列表或参数列表的操作可视为由OpenAPI调用设备的控制层完成。而OpenAPI信息库中的OpenAPI列表、方法列表以及参数列表可视为存储在OpenAPI调用设备的模型层。
另外,根据调用规则调用目标OpenAPI方法的操作也可视为由OpenAPI调用设备的控制层来完成。
图2C为本发明一实施例提供的步骤101的又一种实施方式的流程图。如图2C所示,本实施例的实施方式包括:
步骤10c1、获取与调用请求对应的OpenAPI功能参数。
具体的,当用户需要调用OpenAPI方法时,通过其OpenAPI调用工具向OpenAPI调用设备发送功能调用请求。该功能调用请求包括OpenAPI功能参数,用于标识用户需要OpenAPI方法所完成的功能,但并不限制具体是哪一个OpenAPI方法。OpenAPI调用设备接收功能调用请求,然后解析功能调用请求,获取其中的OpenAPI功能参数。具体的,OpenAPI调用设备可以根据与用户预先约定的功能调用请求的格式,对功能调用请求进行解析,从相应位置获取OpenAPI功能参数。
步骤10c2、根据OpenAPI功能参数,获取OpenAPI方法集。其中,OpenAPI方法集包括与OpenAPI功能参数对应的多个OpenAPI方法。
当OpenAPI调用设备获取OpenAPI功能参数之后,根据获取的OpenAPI功能参数在OpenAPI信息库中进行查询,主要是指根据OpenAPI功能参数依次在OpenAPI列表和方法列表中进行查找,并获取所有能够实现OpenAPI功能参数所描述的功能的OpenAPI方法。其中,所获取的功能相同的OpenAPI方法被存储到OpenAPI方法集中。OpenAPI方法集中的各种OpenAPI方法可以来自不同的OpenAPI,也可以是采用不同的通信协议编写,但却具有相同的参数列表。
步骤10c3、根据OpenAPI方法集中每个OpenAPI方法的服务质量(Qualityof Service;简称为:Qos)属性值,获取目标OpenAPI方法。
其中,在其中,OpenAPI信息库中还包括每个OpenAPI方法的Qos属性值。该Qos属性值可以包括主观Qos属性和/或客观Qos属性。主观Qos属性主要反映用户对OpenAPI的评价,客观Qos属性主要反映OpenAPI调用过程中的一些性能。主观Qos属性可以包括以下任意一个或其组合:易用性(Usability)、正确性(Correctness)、性价比(Performance/Price)或主观安全性(Security)。其中,易用性用于反映调用OpenAPI的过程是否简单,返回的结果是否容易理解。正确性用于评价调用OpenAPI后得到的结果是否是用户期望的结果。性价比是指一OpenAPI的实际应用价值与用户调用该OpenAPI所花费的费用的比值。主观安全性是指用户在调用OpenAPI后对OpenAPI是否安全给出的评价。另外,还可以对上述各种主观Qos属性进行加权平均处理,获取综合主观评价值。客观Qos属性可以包括以下任意一种或其组合:加密安全性、响应时间(Response Time)、可用性(Availability)或稳定性(Stability)。其中,加密安全性是指OpenAPI调用的传输过程是否进行了加密。响应时间是指调用OpenAPI的快慢程度,即从用户发起调用到用户得到返回结果的时间差。可用性用于评价当前的OpenAPI是否可用,可以用用户成功调用OpenAPI的比率来表征。稳定性可以用平均故障间隔时间(Mean Time between Failures;简称为:MTBF)来表示,是指OpenAPI两次调用失败之间的平均工作时间。
在本实施例中,每个OpenAPI方法的上述Qos属性值是预先获取的。具体的,客观Qos属性值可以通过监测调用OpenAPI方法的过程来获取,例如:可以通过检测程序记录调用OpenAPI方法的响应时间、可用性等在内的客观信息来获取Qos属性值。主观Qos属性值可以通过调用OpenAPI方法结束后用户的评价来获取,例如:在调用结束后,要求用户提交包括正确性、易用性、性价比等在内的主观评价信息。换句话说,OpenAPI方法的Qos属性值是在被调用的过程中逐渐搜集起来的。
在各种Qos属性值中,一些Qos属性的值越大,表示OpenAPI性能越高,例如可用性;一些Qos属性的值越小,表示OpenAPI性能越高,例如响应时间。将Qos属性值越大,表示OpenAPI性能越好的Qos属性称为增量型Qos属性,相应的将其值称为增量型Qos属性值;将Qos属性值越小,表示OpenAPI性能越好的Qos属性称为减量型Qos属性,相应的将其值称为减量型Qos属性值。为了计算方便,在本实施例中,选择设备对各种Qos属性值进行归一化处理,并生成用户适用度值,以用户适用度值这一个指标来评价OpenAPI的性能,并基于每个OpenAPI方法的用户适用度值来选择目标OpenAPI方法。
具体的,OpenAPI调用设备根据公式(1)对增量型Qos属性值进行归一化处理。
v ( Q i k ) = Q i k - min Q i k i = 1 n max Q i k i = 1 n - min Q i k i = 1 n , max Q i k i = 1 n - min Q i k i = 1 n ≠ 0 1 , max Q i k i = 1 n - min Q i k i = 1 n = 0 - - - ( 1 )
OpenAPI调用设备根据公式(2)对减量型Qos属性值进行归一化处理。
v ( Q i k ) = max Q i k i = 1 n - Q i k max Q i k i = 1 n - min Q i k i = 1 n , max Q i k i = 1 n - min Q i k i = 1 n ≠ 0 1 , max Q i k i = 1 n - min Q i k i = 1 n = 0 - - - ( 2 )
其中,
Figure BDA0000069665450000112
表示第i个OpenAPI方法的第k个Qos属性值;
Figure BDA0000069665450000113
表示第i个OpenAPI方法的第k个归一化的Qos属性值;n表示OpenAPI方法集中OpenAPI方法的个数,i=1...n;k=1...m,m表示每个OpenAPI方法的Qos属性的个数。例如:当每个OpenAPI方法对应的Qos属性同时包括易用性、正确性、性价比、安全性、响应时间、可用性和稳定性时,m为7。
进一步,当进行归一化处理后,OpenAPI调用设备根据公式(3)对归一化处理后的Qos属性值进行加权平均处理,生成用户适用度值。
U i = Σ k = 1 m ( w k v ( Q i k ) ) - - - ( 3 )
其中,wk表示每个OpenAPI方法的第k个归一化的Qos属性值的权重值;在本实施例中,该权重值是预先设定的,且对于每个OpenAPI方法而言,该wk是相同的,但并不限于此;Ui表示第i个OpenAPI方法对应的用户适用度值。
其中,步骤10c3的一种实施方式为:OpenAPI调用设备从OpenAPI方法集中多个OpenAPI方法中选择用户适用度值最大的OpenAPI方法作为目标OpenAPI方法。该实施方式简单易于实现,且选择出的目标OpenAPI方法为最佳OpenAPI方法,在调用该目标OpenAPI方法后可使用户获得质量较高的服务。
如图2D所示,步骤10c3的另一种实施方式包括:
步骤10c31、根据每个OpenAPI方法对应的用户适用度值,为每个OpenAPI方法分配一选择概率。
其中,OpenAPI调用设备为每个OpenAPI分配不同的选择概率,保证性能好的OpenAPI方法分配的选择概率较大。也就是说,如果OpenAPI方法的用户使用度值越大,OpenAPI调用设备为其分配的选择概率越大。OpenAPI调用设备所分配的所有选择概率之和为1。假设有n个OpenAPI方法,按照从小到大的顺序排列后分别为:apiid1,apiid2,...,apiidi,...,apiidn,相应的选择概率分别为p1,p2,...,pi,...,pn,其中,p1+p2+....+pi+...+pn=1。n个选择概率将划分出n+1个概率区间。
步骤10c32、产生随机数。
具体的,OpenAPI调用设备根据一定的算法产生0-1之间的随机数。
步骤10c33、根据随机数和选择概率,从多个OpenAPI方法中选择目标OpenAPI方法。
具体的,OpenAPI调用设备将选择概率按照从小到大的顺序排序;然后,将随机数依次与排序后的选择概率进行比较,直到比较出第一个大于随机数的选择概率为止,选择第一个大于随机数的选择概率对应的OpenAPI方法作为目标OpenAPI方法。也就是说,OpenAPI调用设备判断该随机数出现在哪个概率区间,取该概率区间的上限对应的OpenAPI方法,将该OpenAPI方法作为目标OpenAPI方法。
该实施方式通过产生0-1之间的随机数,并根据随机数和为OpenAPI方法分配的选择概率选择目标OpenAPI方法,可以保证概率较大的OpenAPI方法被选择的可能性较大,也就是说可以保证性能越好的OpenAPI方法被选择的概率越高,并且还能够保证每个OpenAPI方法都有被选择的可能。
进一步,当选择出目标OpenAPI方法之后,OpenAPI调用设备执行步骤102和步骤103向OpenAPI服务器调用目标OpenAPI方法;并判断OpenAPI服务器是否返回调用结果。如果判断结果为否,说明调用目标OpenAPI方法失败,则将目标OpenAPI方法从OpenAPI方法集中去除,并重新执行步骤10c3以重新获取目标OpenAPI方法。如果判断结果为是,说明调用目标OpenAPI方法成功,则向用户返回调用结果,并结束此次OpenAPI调用操作。
其中,图2C所示实施方式可由OpenAPI调用设备的另一功能单元实现,该功能单元具体向直接选定调用单元提供输入参数,以调用直接选定调用单元为基础实现对OpenAPI方法的调用。用户一旦确定了能够满足自己需求的抽象功能(Abstract Function),该功能单元允许用户直接输入OpenAPI功能参数,然后,自动根据OpenAPI功能参数获取具备该OpenAPI功能参数所述功能的多个OpenAPI方法,并根据Qos属性从中选择性能较佳(即服务质量较好)的OpenAPI方法供用户调用,同时如果选择的目标OpenAPI方法不可用(即未被调用成功),从OpenAPI方法集中剔除后重新为用户选择,直到使用户得到调用结果为止。上述操作过程对用户来说是透明的,用户只需发送带有OpenAPI功能参数的调用请求即可,无论最终调用的OpenAPI方法是哪个,对用户而言整个调用流程是相同的,用户不需要关心每个OpenAPI方法所使用的通信协议,简化了用户的调用流程,提高了调用效率。基于该功能单元的具体功能,将该功能单元称之为一键调用单元。该一键调用单元是以调用直接选定调用单元为基础实现的。
在图2C所示实施方式中,用户只需发送一次调用请求即可通过OpenAPI调用设备得到性能较佳的OpenAPI方法,而不需要多次向不同的设备发出调用请求,提高了用户调用OpenAPI方法的效率。
更进一步,如图2E所示,步骤10c1的另一种实施方式包括:
步骤10c11、接收用户发送的应用调用请求,该应用调用请求包括应用描述信息。
具体的,当用户需要调用OpenAPI方法实现一种应用时,通过其OpenAPI调用工具向OpenAPI调用设备发送应用调用请求。此处的用户主要是指基于OpenAPI方法开发新应用或新系统的开发用户。该应用调用请求包括开发用户需要通过OpenAPI方法所完成的系统或应用的描述信息。例如:以学校介绍与地图的组合应用为例,该组合应用需要获取以某个坐标为中心(即某个地点)的地图,然后再获取该坐标地点附近的学校信息,两者组合显示在一起。在该组合应用中涉及两个功能信息,一个是获取以某地点为中心的地图,另一个是获取以某地点为中心的学校介绍。当用户需要通过OpenAPI方法实现学校介绍与地图的组合应用时,用户只需向OpenAPI调用设备发送携带“学校介绍与地图组合以及地点A”信息的应用调用请求即可,具体由哪些OpenAPI方法实现该功能,由OpenAPI调用设备根据解析获取到的两个功能信息进行确定。其中,学校介绍与地图的组合应用仅为应用描述信息的一种示例。
步骤10c12、对应用描述信息进行功能解析处理,获取OpenAPI功能参数。
OpenAPI调用设备接收到应用调用请求之后,对应用调用请求进行解析获取其中的应用描述信息,然后对应用描述信息进行功能解析处理,获取OpenAPI功能参数。例如:OpenAPI调用设备对“学校介绍与地图组合以及地点A”进行功能解析,获取到“获取以地点A为中心的地图和获取以地点A为中心的学校介绍”这样两个OpenAPI功能参数。
之后,OpenAPI调用设备执行步骤10c32,根据上述OpenAPI功能参数分别在OpenAPI信息库中进行查找,最终找到具有获取以地点A为中心的地图功能的OpenAPI方法集和具有获取以地点A为中心的学校介绍功能的OpenAPI方法集。同理,在这些方法集中,每个OpenAPI方法可以使用不同的通信协议编写,也可以属于不同的OpenAPI。
再接着,OpenAPI调用设备执行步骤10c33,分别从上述具有获取以地点A为中心的地图功能的OpenAPI方法集和具有获取以地点A为中心的学校介绍功能的OpenAPI方法集中获取具有获取以地点A为中心的地图功能的目标OpenAPI方法和获取具有获取以地点A为中心的学校介绍功能的目标OpenAPI方法。其中,获取具有获取以地点A为中心的地图功能的目标OpenAPI方法和获取具有获取以地点A为中心的学校介绍功能的目标OpenAPI方法的过程是相同且独立的。
其中,如2E所示实施方式可由OpenAPI调用设备的另一功能单元实现,该功能单元主要是由应用开发者以调用一键调用单元和直接选定调用单元为基础实现对目标OpenAPI方法的调用,所完成的由多种OpenAPI方法糅合在一起实现的应用,并向用户提供了统一调用接口的单元。由于该另一功能单元将各OpenAPI方法糅合在一起形成了更加丰富的应用,因此将该功能单元称之为糅合(mashup)调用单元。
在该实施方式下,用户只需输入应用调用请求即可实现对不同OpenAPI方法的糅合调用,且用户也不需关心每个OpenAPI方法所采用的通信协议,具有调用简单、效率高的优点。
另外,在该实施方式下,OpenAPI调用设备还向应用开发者(例如Web应用开发者)提供了一种能力,使得应用开发者可以通过简单、高效、且统一的调用方式调用各种OpenAPI方法,开发混搭应用,以提供全新的业务功能。即用于实现该实施方式的mashup调用单元可以作为一个平台来实现,在该平台上允许应用开发者相互之间共享功能代码(即各种OpenAPI方法),同时,该平台还可以提供检索、提交、下载等功能,从而实现最大限度的代码重用。
在上所述的直接选定调用单元、一键调用单元和mashup调用单元中,Mashup调用单元的粒度最大,因为一个混搭应用里可能融合了若干个不同的OpenAPI方法。由于这种融合,使得OpenAPI调用设备不能直接用评价OpenAPI方法的QoS属性来评价Mashup应用,故OpenAPI调用设备单独制定评价标准,以每个Mashup应用为单位进行评价。在Mashup应用的评价标准中,主要侧重于用户的评价。即在应用开发者通过调用一键调用单元和直接选定调用单元完成Mashup调用单元,实现Mashup应用之后,由用户对该Mashup应用进行调用并向OpenAPI调用设备返回对该Mashup应用的主观评价信息。例如:在实际实现过程中,应用开发者可以在发布自己开发的Mashup应用时,标注自己期望的积分价格;当使用用户在下载使用该Mashup应用时需要支付相应的积分分数,并在使用后提交评价信息,而为了鼓励使用用户提交评价信息,在使用用户提交评价信息之后,OpenAPI调用设备再返还一定的积分给该使用用户,从而实现对Mashup应用评价信息的获取。
在此说明,上述各实施例或实施方式中的OpenAPI方法既包括由Rest协议和Soap协议实现的可以独立运行的OpenAPI方法,也包括由Aiax协议实现的无法独立运行的OpenAPI方法。基于此,OpenAPI调用设备上预先存储与各种协议相适应的调用规则。
图3为本发明一实施例提供的步骤103的实施方式的流程图。该实施方式可基于上述各实施例或实施方式实现,如图3所示,该实施方式包括:
步骤1031、根据目标OpenAPI方法采用的协议类型,获取与目标OpenAPI方法相适应的调用规则。
具体的,在OpenAPI调用设备上预先存储有与各种通信协议相适应的调用规则。当OpenAPI调用设备确定出目标OpenAPI方法之后,可以从OpenAPI列表中获取该目标OpenAPI方法所使用的通信协议,进而获取与该通信协议对应的调用规则。
步骤1032、根据调用规则,对参数信息进行处理,生成第三方调用请求。
OpenAPI调用设备获取调用规则之后,对目标OpenAPI方法的参数信息进行处理,生成第三方调用请求,即发送给第三方的OpenAPI服务器的调用请求。
步骤1033、向OpenAPI服务器发送第三方调用请求,以对目标OpenAPI方法进行调用。
在生成调用请求之后,OpenAPI调用设备向第三方的OpenAPI服务器发送第三方调用请求,以对目标OpenAPI方法进行调用。
在本实施方式中,OpenAPI调用设备上预先存储好各种协议对应的调用规则,并根据目标OpenAPI方法使用的通信协议获取相应的调用规则,进而调用目标OpenAPI方法,使得用户不用关心目标OpenAPI方法使用的通信协议,不用在学习通信协议之后进行调用,因此,具有实现简单、调用效率较高的优势。
图4为本发明又一实施例提供的OpenAPI调用方法的流程图。本实施例基于图1和图3所示实施例实现,如图4所示,本实施例的方法在步骤1033之前包括:
步骤103a、设定返回结果的数据格式。
具体的,由于OpenAPI调用设备所支持的调用结果的数据格式、用户所支持的调用结果的数据格式以及OpenAPI服务器所支持的数据格式可以不同,故为了满足用户能够识别返回结果,在本实施例中,OpenAPI调用设备在调用目标OpenAPI方法之前预先设定返回结果的数据格式。该操作也是由OpenAPI调用设备的控制层来完成。
如图4所示,在步骤1033之后还包括:
步骤1034、接收OpenAPI服务器返回的调用结果,并根据数据格式对调用结果进行格式化处理,将处理后的调用结果提供给用户。
本实施例的OpenAPI调用方法,在调用目标OpenAPI方法之前设定数据格式,在接收到返回结果之后采用设定的数据格式对返回结果进行格式化,可以保证用户直接接收到可识别的返回结果,无须用户再进行格式转换,提高了对用户的服务质量。
本发明以下实施例分别以目标OpenAPI采用不同通信协议时,对其进行调用的流程进行详细说明。
图5为本发明一实施例提供的目标OpenAPI方法采用Rest协议时的调用方法的流程图。如图5所示,本实施例的方法包括:
步骤501、OpenAPI调用设备根据用户的调用请求,获取目标OpenAPI方法。
具体的,该步骤501可以采用图2A-图2D任一所示的实施方式获取目标OpenAPI方法,具体视用户的调用请求而定,详细过程在此不再赘述。
步骤502、OpenAPI调用设备向用户提供目标OpenAPI方法的参数列表。
具体的,在获取目标OpenAPI方法之后,OpenAPI调用设备查询OpenAPI信息库获取该目标OpenAPI方法的参数列表,并通过调用界面提供给用户。
步骤503、用户根据参数列表输入目标OpenAPI方法所需的参数信息,同时输入调用密钥Key值,并发送给OpenAPI调用设备。
具体的,用户在调用界面上输入参数信息,同时输入调用目标OpenAPI方法时所需的加密密钥,即调用Key值,并通过调用界面上的提交功能发送给OpenAPI调用设备。
步骤504、OpenAPI调用设备接收用户发送的参数信息和调用Key值,根据目标OpenAPI方法查询OpenAPI列表,获取目标OpenAPI方法的调用地址。
步骤505、OpenAPI调用设备将参数信息和调用Key值进行加密处理,生成第三方调用请求。
具体的,OpenAPI调用设备用将调用Key值对参数信息进行加密处理之后生成第三方调用请求。其中,在Rest协议下的第三方调用请求是超文本标记语言(Hyper Text Mark-up Language;简称为:HTML)格式的请求。
另外,在该步骤中,OpenAPI调用设备还可以设定返回结果的数据格式。
步骤506、OpenAPI调用设备根据调用地址,将第三方调用请求发送给OpenAPI服务器,以对目标OpenAPI方法进行调用。
步骤507、OpenAPI调用设备接收OpenAPI服务器返回的调用结果,并采用预先设定的数据格式对调用结果进行格式化处理之后,发送给用户。
具体的,OpenAPI调用设备将OpenAPI服务器返回的可扩展标记语言(Extensible Markup Language;简称为:XML)格式的调用结果进行格式化处理,形成可被用户识别的格式的调用结果。
其中,步骤504和步骤505即为目标OpenAPI方法采用Rest协议时,对应的调用规则,亦即为步骤1032的具体实施方式。
本实施例的OpenAPI调用方法,OpenAPI调用设备在目标OpenAPI方法采用Rest协议时,直接获取该Rest协议对应的调用规则,并根据该调用规则自动完成对目标OpenAPI方法的调用,不再需要用户学习Rest协议的通信机制,提高了调用OpenAPI方法的效率。
图6为本发明一实施例提供的目标OpenAPI方法采用Soap协议时的调用方法的流程图。如图6所示,本实施例的方法包括:
步骤601、OpenAPI调用设备根据用户的调用请求,获取目标OpenAPI方法。
步骤602、OpenAPI调用设备向用户提供目标OpenAPI方法的参数列表。
步骤603、用户根据参数列表输入目标OpenAPI方法所需的参数信息,并发送给OpenAPI调用设备。
上述步骤601-步骤603详见步骤501-步骤503的描述,在此不再赘述。
步骤604、OpenAPI调用设备接收用户发送的参数信息,并根据目标OpenAPI方法查询OpenAPI列表,获取Soap协议的web服务描述语言向java转换(WSDL2Java)工具包。
步骤605、OpenAPI调用设备使用WSDL2Java工具包对参数信息和目标OpenAPI方法进行处理,生成第三方调用请求。
具体的,OpenAPI调用设备使用WSDL2Java工具包先生成向Soap服务器(即OpenAPI服务器)发起调用的java接口代码,再利用用户输入的参数信息,自动生成调用目标OpenAPI方法的Soap客户端代码,该Soap客户端代码在运行时自行生成第三方调用请求。
另外,在该步骤中,OpenAPI调用设备还可以设定返回结果的数据格式。
步骤606、OpenAPI调用设备将第三方调用请求发送给OpenAPI服务器,以对目标OpenAPI方法进行调用。
具体的,OpenAPI调用设备通过运行Soap客户端代码生成并向OpenAPI服务器发送第三方调用请求,从而完成对目标OpenAPI方法的调用。
步骤607、OpenAPI调用设备接收OpenAPI服务器返回的调用结果,并采用预先设定的数据格式对调用结果进行格式化处理之后,发送给用户。
具体的,OpenAPI调用设备将OpenAPI服务器返回的调用结果进行格式化处理,形成可被用户识别的格式的调用结果。
其中,步骤604和步骤605即为目标OpenAPI方法采用Soap协议时,对应的调用规则,亦即为步骤1032的具体实施方式。
本实施例的OpenAPI调用方法,OpenAPI调用设备在目标OpenAPI方法采用Soap协议时,直接获取该Soap协议对应的调用规则,并根据该调用规则自动完成对目标OpenAPI方法的调用,不再需要用户学习Soap协议的通信机制,提高了调用OpenAPI方法的效率。
图7为本发明一实施例提供的目标OpenAPI方法采用Ajax协议时的调用方法的流程图。如图7所示,本实施例的方法包括:
步骤701、OpenAPI调用设备根据用户的调用请求,获取目标OpenAPI方法。
步骤702、OpenAPI调用设备向用户提供目标OpenAPI方法的参数列表。
步骤703、用户根据参数列表输入目标OpenAPI方法所需的参数信息,并发送给OpenAPI调用设备。
上述步骤701-步骤703详见步骤501-步骤503的描述,在此不再赘述。
步骤704、OpenAPI调用设备接收参数信息,并获取本地存储的第一功能代码,然后根据第一功能代码从OpenAPI服务器获取第二功能代码,并通过第一功能代码和第二功能代码对参数信息进行处理,生成第三方调用请求。
其中,由于采用Ajax协议编写的OpenAPI方法在调用时,需要编写不同的功能代码来调用,故在本实施例的中预先生成并存储了与各OpenAPI方法相适应的第一功能代码。另外,调用由Ajax协议实现的OpenAPI方法还需要到OpenAPI服务器上下载另一部分功能代码,在本实施例中,当获取到第一功能代码时直接触发OpenAPI调用设备到OpenAPI服务器去获取另一部分功能代码,即第二功能代码(例如需要的javascript代码),然后将两部分功能代码结合起来对参数信息进行处理,生成第三方调用请求。
步骤705、OpenAPI调用设备将第三方调用请求发送给OpenAPI服务器,以对目标OpenAPI方法进行调用。
具体的,OpenAPI调用设备通过运行上述功能代码来生成并将第三方调用请求发送给OpenAPI服务器。
步骤706、OpenAPI调用设备接收OpenAPI服务器返回的调用结果,并采用预先设定的数据格式对调用结果进行格式化处理之后,发送给用户。
本实施例的OpenAPI调用方法,OpenAPI调用设备在目标OpenAPI方法采用Ajax协议时,直接获取该Ajax协议对应的调用规则,并根据该调用规则自动完成对目标OpenAPI方法的调用,不再需要用户学习Ajax协议的通信机制,提高了调用OpenAPI方法的效率。
综上所述,本发明各实施例通过预先设置各通信协议下的调用规则,并通过向用户提供统一的调用接口输入调用请求,而由OpenAPI调用设备自动采用相应的调用规则完成对各OpenAPI方法的调用,使得用户采用相同的调用流程完成对各种OpenAPI方法的调用,并无需对各种通信协议进行学习,提高了调用OpenAPI方法的效率,提高了对用户的服务质量。
图8为本发明一实施例提供的OpenAPI调用设备的结构示意图。如图8所示,本实施例的调用设备包括:方法获取单元81、参数获取单元82和调用单元83。
其中,方法获取单元81,用于获取与用户的调用请求相对应的目标OpenAPI方法;参数获取单元82,与方法获取单元81连接,用于向用户提供与目标OpenAPI方法对应的参数列表,以获取目标OpenAPI方法的参数信息;调用单元83,与参数获取单元82连接,用于根据参数信息和与目标OpenAPI方法相适应的调用规则,对目标OpenAPI方法进行调用。
本实施例的OpenAPI调用设备可用于执行图1所示实施例的流程,其工作原理不再赘述,详见方法实施例的描述。
本实施例的OpenAPI调用设备,在获取目标OpenAPI方法和目标OpenAPI方法对应的参数信息后,通过采用与目标OpenAPI方法相适应的调用规则,对目标OpenAPI方法进行调用,对用户而言实现了采用统一的调用流程实现对不同OpenAPI的调用,简化了调用过程,提高了调用OpenAPI的效率。
图9为本发明又一实施例提供的OpenAPI调用设备的结构示意图。本实施例基于图8所示实施例实现,如图9所示,本实施例的方法获取单元81的一种实现结构包括:第一接收子单元811、第一API获取子单元812、第一提供子单元813和第一方法获取子单元814。
具体的,第一接收子单元811,用于接收用户发送的第一调用请求;第一API获取子单元812,与第一接收子单元811连接,用于根据第一调用请求向用户提供OpenAPI列表,以使用户选择目标OpenAPI,该OpenAPI列表包括多个OpenAPI的信息;第一提供子单元813,与第一API获取子单元812连接,用于获取目标OpenAPI对应的方法列表,并将方法列表提供给用户以供用户选择,该方法列表包括多个OpenAPI方法的信息;第一方法获取子单元814,与第一提供子单元813连接,用于根据用户的选择结果,获取目标OpenAPI方法。
如图9所示,方法获取单元81的另一种实现结构包括:第二接收子单元815、第二API获取子单元816、第二提供子单元817和第二方法获取子单元818。
具体的,第二接收子单元815,用于接收用户发送的第二调用请求,该第二调用请求包括OpenAPI关键字;第二API获取子单元816,与第二接收子单元815连接,用于根据OpenAPI关键字查询OpenAPI列表,获取与OpenAPI关键字对应的目标OpenAPI,该OpenAPI列表包括多个OpenAPI的信息;第二提供子单元817,与第二API获取子单元816连接,用于获取目标OpenAPI对应的方法列表,并将方法列表提供给用户以供用户选择,该方法列表包括多个OpenAPI方法的信息;第二方法获取子单元818,与第二提供子单元817连接,用于根据用户的选择结果,获取目标OpenAPI方法。
更进一步,如图9所示,方法获取单元81的又一种实现结构包括:参数获取子单元819、方法集获取子单元820和第三方法获取子单元821。
具体的,参数获取子单元819,用于获取与调用请求对应的OpenAPI功能参数;方法集获取子单元820,与参数获取子单元819连接,用于根据OpenAPI功能参数,获取OpenAPI方法集,该OpenAPI方法集包括与OpenAPI功能参数对应的多个OpenAPI方法;第三方法获取子单元821,与方法集获取子单元820连接,用于根据OpenAPI方法集中每个OpenAPI方法的Qos属性值,获取目标OpenAPI方法。
其中,参数获取子单元819的一种实现结构包括:第一接收模块和第一获取模块。具体的,第一接收模块,用于接收用户发送的功能调用请求,该功能调用请求包括OpenAPI功能参数;第一获取模块,与第一接收模块连接,用于解析功能调用请求,获取OpenAPI功能参数。
参数获取子单元819的又一种实现结构包括:第二接收模块和第二获取模块。具体的,第二接收模块,用于接收用户发送的应用调用请求,该应用调用请求包括应用描述信息;第二获取模块,与第二接收模块连接,用于对应用描述信息进行功能解析处理,获取OpenAPI功能参数。
其中,上述各功能子单元或模块可用于执行上述图2A-图2D所示实施例的流程,其工作原理不再赘述,详见方法实施例部分的描述。OpenAPI调用设备具体通过上述功能子单元或模块允许用户输入各种调用请求,为用户提供了更加方便的调用接口,进一步提高了调用OpenAPI方法的效率,提高了对用户的服务质量。
更进一步,如图9所示,本实施例的调用单元83包括:规则获取子单元831、生成子单元832和调用子单元833。
其中,规则获取子单元831,用于根据目标OpenAPI方法采用的协议类型,获取与目标OpenAPI方法相适应的调用规则;生成子单元832,与规则获取子单元831连接,用于根据调用规则,对参数信息进行处理,生成第三方调用请求;调用子单元833,与生成子单元832连接,用于向OpenAPI服务器发送第三方调用请求,以对目标OpenAPI方法进行调用。
具体的,当目标OpenAPI方法采用Rest协议编写时,生成子单元832具体用于接收用户发送的调用密钥Key值,并根据目标OpenAPI方法查询OpenAPI列表,获取调用地址;并将参数信息和调用Key值进行加密处理,生成第三方调用请求。
当目标OpenAPI方法采用Soap协议编写时,生成子单元832具体用于查询OpenAPI列表,获取Soap协议的WSDL2Java工具包;使用WSDL2Java工具包对参数信息和目标OpenAPI方法进行处理,生成第三方调用请求。
当目标OpenAPI方法采用Ajax协议编写时,生成子单元832具体用于获取本地存储的与目标OpenAPI方法对应的第一功能代码;根据第一功能代码,从API数据库获取第二功能代码;通过第一功能代码和第二功能代码对参数信息进行处理,生成第三方调用请求。
上述各功能子单元可用于执行图3或图5-图7所示实施例的流程,其具体工作原理不再赘述,详见方法实施例部分的描述。
再进一步,本实施例的OpenAPI调用设备还包括:设定单元84和接收处理单元85。
具体的,设定单元84,用于设定返回结果的数据格式。接收处理单元85,与设定单元84连接,用于接收OpenAPI服务器返回的调用结果,并根据数据格式对调用结果进行格式化处理,将处理后的调用结果提供给用户。
综上所述,本实施例的OpenAPI调用设备,在获取目标OpenAPI方法和目标OpenAPI方法对应的参数信息后,通过采用与目标OpenAPI方法相适应的调用规则,对目标OpenAPI方法进行调用,对用户而言实现了采用统一的调用流程实现对不同OpenAPI的调用,简化了调用过程,提高了调用OpenAPI的效率。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (22)

1.一种开放应用程序编程接口OpenAPI调用方法,其特征在于,包括:
获取与用户的调用请求相对应的目标OpenAPI方法;
向所述用户提供与所述目标OpenAPI方法对应的参数列表,以获取所述目标OpenAPI方法的参数信息;
根据所述参数信息和与所述目标OpenAPI方法相适应的调用规则,对所述目标OpenAPI方法进行调用;
所述根据所述参数信息和与所述目标OpenAPI方法相适应的调用规则,对所述目标OpenAPI方法进行调用包括:
根据所述目标OpenAPI方法采用的协议类型,获取与所述目标OpenAPI方法相适应的调用规则;
根据所述调用规则,对所述参数信息进行处理,生成第三方调用请求;
向OpenAPI服务器发送所述第三方调用请求,以对所述目标OpenAPI方法进行调用。
2.根据权利要求1所述的OpenAPI调用方法,其特征在于,所述获取与用户的调用请求相对应的目标OpenAPI方法包括:
接收所述用户发送的第一调用请求;
根据所述第一调用请求向所述用户提供OpenAPI列表,以使所述用户选择目标OpenAPI,所述OpenAPI列表包括多个OpenAPI的信息;
获取所述目标OpenAPI对应的方法列表,并将所述方法列表提供给所述用户以供所述用户选择,所述方法列表包括多个OpenAPI方法的信息;
根据所述用户的选择结果,获取所述目标OpenAPI方法。
3.根据权利要求1所述的OpenAPI调用方法,其特征在于,所述获取与用户的调用请求相对应的目标OpenAPI方法包括:
接收所述用户发送的第二调用请求,所述第二调用请求包括OpenAPI关键字;
根据所述OpenAPI关键字查询OpenAPI列表,获取与所述OpenAPI关键字对应的目标OpenAPI,所述OpenAPI列表包括多个OpenAPI的信息;
获取所述目标OpenAPI对应的方法列表,并将所述方法列表提供给所述用户以供所述用户选择,所述方法列表包括多个OpenAPI方法的信息;
根据所述用户的选择结果,获取所述目标OpenAPI方法。
4.根据权利要求1所述的OpenAPI调用方法,其特征在于,所述获取与用户的调用请求相对应的目标OpenAPI方法包括:
获取与所述调用请求对应的OpenAPI功能参数;
根据所述OpenAPI功能参数,获取OpenAPI方法集,所述OpenAPI方法集包括与所述OpenAPI功能参数对应的多个OpenAPI方法;
根据所述OpenAPI方法集中每个所述OpenAPI方法的服务质量Qos属性值,获取所述目标OpenAPI方法。
5.根据权利要求4所述的OpenAPI调用方法,其特征在于,所述获取与所述调用请求对应的OpenAPI功能参数包括:
接收所述用户发送的功能调用请求,所述功能调用请求包括OpenAPI功能参数;
解析所述功能调用请求,获取所述OpenAPI功能参数。
6.根据权利要求4所述的OpenAPI调用方法,其特征在于,所述获取与所述调用请求对应的OpenAPI功能参数包括:
接收所述用户发送的应用调用请求,所述应用调用请求包括应用描述信息;
对所述应用描述信息进行功能解析处理,获取所述OpenAPI功能参数。
7.根据权利要求1-6任一所述的OpenAPI调用方法,其特征在于,所述目标OpenAPI方法采用表述性状态转移Rest协议;
所述根据所述调用规则,对所述参数信息进行处理,生成第三方调用请求包括:
接收所述用户发送的调用密钥Key值,并根据所述目标OpenAPI方法查询OpenAPI列表,获取调用地址;将所述参数信息和所述调用Key值进行加密处理,生成所述第三方调用请求。
8.根据权利要求1-6任一所述的OpenAPI调用方法,其特征在于,所述目标OpenAPI方法采用简单对象访问协议Soap;
所述根据所述调用规则,对所述参数信息进行处理,生成第三方调用请求包括:
查询OpenAPI列表,获取所述Soap协议的WSDL2Java工具包;使用所述WSDL2Java工具包对所述参数信息和所述目标OpenAPI方法进行处理,生成所述第三方调用请求。
9.根据权利要求1-6任一所述的OpenAPI调用方法,其特征在于,所述目标OpenAPI方法采用Ajax协议;
所述根据所述调用规则,对所述参数信息进行处理,生成第三方调用请求包括:
获取本地存储的与所述目标OpenAPI方法对应的第一功能代码;根据所述第一功能代码,从所述API数据库获取第二功能代码;通过所述第一功能代码和所述第二功能代码对所述参数信息进行处理,生成所述第三方调用请求。
10.根据权利要求1-6任一所述的OpenAPI调用方法,其特征在于,向所述OpenAPI服务器发送所述第三方调用请求,以对所述目标OpenAPI方法进行调用之前包括:
设定返回结果的数据格式。
11.根据权利要求10所述的OpenAPI调用方法,其特征在于,还包括:
接收所述OpenAPI服务器返回的调用结果,并根据所述数据格式对所述调用结果进行格式化处理,将处理后的调用结果提供给所述用户。
12.一种开放应用程序编程接口OpenAPI调用设备,其特征在于,包括:
方法获取单元,用于获取与用户的调用请求相对应的目标OpenAPI方法;
参数获取单元,用于向所述用户提供与所述目标OpenAPI方法对应的参数列表,以获取所述目标OpenAPI方法的参数信息;
调用单元,用于根据所述参数信息和与所述目标OpenAPI方法相适应的调用规则,对所述目标OpenAPI方法进行调用,该调用单元包括:
规则获取子单元,用于根据所述目标OpenAPI方法采用的协议类型,获取与所述目标OpenAPI方法相适应的调用规则;
生成子单元,用于根据所述调用规则,对所述参数信息进行处理,生成第三方调用请求;
调用子单元,用于向OpenAPI服务器发送所述第三方调用请求,以对所述目标OpenAPI方法进行调用。
13.根据权利要求12所述的OpenAPI调用设备,其特征在于,所述方法获取单元包括:
第一接收子单元,用于接收所述用户发送的第一调用请求;
第一API获取子单元,用于根据所述第一调用请求向所述用户提供OpenAPI列表,以使所述用户选择目标OpenAPI,所述OpenAPI列表包括多个OpenAPI的信息;
第一提供子单元,用于获取所述目标OpenAPI对应的方法列表,并将所述方法列表提供给所述用户以供所述用户选择,所述方法列表包括多个OpenAPI方法的信息;
第一方法获取子单元,用于根据所述用户的选择结果,获取所述目标OpenAPI方法。
14.根据权利要求12所述的OpenAPI调用设备,其特征在于,所述方法获取单元包括:
第二接收子单元,用于接收所述用户发送的第二调用请求,所述第二调用请求包括OpenAPI关键字;
第二API获取子单元,用于根据所述OpenAPI关键字查询OpenAPI列表,获取与所述OpenAPI关键字对应的目标OpenAPI,所述OpenAPI列表包括多个OpenAPI的信息;
第二提供子单元,用于获取所述目标OpenAPI对应的方法列表,并将所述方法列表提供给所述用户以供所述用户选择,所述方法列表包括多个OpenAPI方法的信息;
第二方法获取子单元,用于根据所述用户的选择结果,获取所述目标OpenAPI方法。
15.根据权利要求12所述的OpenAPI调用设备,其特征在于,所述方法获取单元包括:
参数获取子单元,用于获取与所述调用请求对应的OpenAPI功能参数;
方法集获取子单元,用于根据所述OpenAPI功能参数,获取OpenAPI方法集,所述OpenAPI方法集包括与所述OpenAPI功能参数对应的多个OpenAPI方法;
第三方法获取子单元,用于根据所述OpenAPI方法集中每个所述OpenAPI方法的服务质量Qos属性值,获取所述目标OpenAPI方法。
16.根据权利要求15所述的OpenAPI调用设备,其特征在于,所述参数获取子单元包括:
第一接收模块,用于接收所述用户发送的功能调用请求,所述功能调用请求包括OpenAPI功能参数;
第一获取模块,用于解析所述功能调用请求,获取所述OpenAPI功能参数。
17.根据权利要求15所述的OpenAPI调用设备,其特征在于,所述参数获取子单元包括:
第二接收模块,用于接收所述用户发送的应用调用请求,所述应用调用请求包括应用描述信息;
第二获取模块,用于对所述应用描述信息进行功能解析处理,获取所述OpenAPI功能参数。
18.根据权利要求12-17任一所述的OpenAPI调用设备,其特征在于,所述目标OpenAPI方法采用表述性状态转移Rest协议;
所述生成子单元具体用于接收所述用户发送的调用密钥Key值,并根据所述目标OpenAPI方法查询OpenAPI列表,获取调用地址;并将所述参数信息和所述调用Key值进行加密处理,生成所述第三方调用请求。
19.根据权利要求12-17任一所述的OpenAPI调用设备,其特征在于,所述目标OpenAPI方法采用简单对象访问协议Soap;
所述生成子单元具体用于查询OpenAPI列表,获取所述Soap协议的WSDL2Java工具包;使用所述WSDL2Java工具包对所述参数信息和所述目标OpenAPI方法进行处理,生成所述第三方调用请求。
20.根据权利要求12-17任一所述的OpenAPI调用设备,其特征在于,所述目标OpenAPI方法采用Ajax协议;
所述生成子单元具体用于获取本地存储的与所述目标OpenAPI方法对应的第一功能代码;根据所述第一功能代码,从所述API数据库获取第二功能代码;通过所述第一功能代码和所述第二功能代码对所述参数信息进行处理,生成所述第三方调用请求。
21.根据权利要求12-17任一所述的OpenAPI调用设备,其特征在于,还包括:
设定单元,用于设定返回结果的数据格式。
22.根据权利要求21所述的OpenAPI调用设备,其特征在于,还包括:
接收处理单元,用于接收所述OpenAPI服务器返回的调用结果,并根据所述数据格式对所述调用结果进行格式化处理,将处理后的调用结果提供给所述用户。
CN201180000546.1A 2011-05-20 2011-05-20 开放应用程序编程接口调用方法及设备 Active CN102203736B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/074424 WO2011127863A2 (zh) 2011-05-20 2011-05-20 开放应用程序编程接口调用方法及设备

Publications (2)

Publication Number Publication Date
CN102203736A CN102203736A (zh) 2011-09-28
CN102203736B true CN102203736B (zh) 2014-04-02

Family

ID=44662778

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180000546.1A Active CN102203736B (zh) 2011-05-20 2011-05-20 开放应用程序编程接口调用方法及设备

Country Status (2)

Country Link
CN (1) CN102203736B (zh)
WO (1) WO2011127863A2 (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609264A (zh) * 2012-02-14 2012-07-25 深圳市同洲视讯传媒有限公司 一种调用应用程序编程接口生成调用代码的方法及装置
WO2013146047A1 (ja) * 2012-03-29 2013-10-03 ソニー株式会社 情報処理装置、情報処理方法、サーバ装置、検索方法および情報処理システム
CN102707958B (zh) * 2012-06-08 2017-07-14 北京奇虎科技有限公司 一种基于开放平台的接口生成校验方法及设备
CN103546806B (zh) * 2013-10-16 2017-04-05 小米科技有限责任公司 一种功能列表的生成方法和装置
CN105335131B (zh) * 2014-06-03 2018-12-25 广州市动景计算机科技有限公司 传感器接口处理方法及装置
CN105607895B (zh) * 2014-11-21 2021-03-02 阿里巴巴集团控股有限公司 一种基于应用程序编程接口的应用程序的运行方法和装置
CN105740057A (zh) * 2014-12-09 2016-07-06 阿里巴巴集团控股有限公司 一种信息处理方法与设备
CN104636132B (zh) * 2014-12-23 2018-07-24 用友网络科技股份有限公司 应用程序操作方法、应用程序操作系统和应用程序
CN104572095B (zh) * 2014-12-29 2017-12-22 天津大学 一种面向最终用户搭建Ajax应用的自适应方法
CN104750810A (zh) * 2015-03-30 2015-07-01 浪潮集团有限公司 一种基于配置的数据查询处理方法
CN106648557B (zh) * 2015-10-28 2020-04-03 华为技术有限公司 一种应用程序编程接口api的分享方法和装置
CN105634743B (zh) * 2015-12-30 2019-10-25 中国银联股份有限公司 用于开放接口调用的认证方法
CN106445562B (zh) * 2016-11-14 2019-11-15 用友网络科技股份有限公司 基于元数据的OpenAPI实现方法及OpenAPI实现装置
CN109426570A (zh) * 2017-08-29 2019-03-05 阿里巴巴集团控股有限公司 一种数据的获取方法、装置及设备
CN108009026A (zh) * 2017-10-27 2018-05-08 深圳市买买提乐购金融服务有限公司 接口调用方法、第三方数据接入平台及计算机可读介质
CN107977198A (zh) * 2017-12-21 2018-05-01 中科点击(北京)科技有限公司 基于爬虫技术生成应用程序编程接口api的方法及装置
CN109347942B (zh) * 2018-10-09 2019-08-23 浙江明度智控科技有限公司 一种工业网关数据补报方法和工业网关
CN111984713A (zh) * 2020-06-29 2020-11-24 五八到家有限公司 一种数据处理方法、装置、设备和存储介质
CN113392388B (zh) * 2021-05-19 2023-05-09 杭州宇泛智能科技有限公司 终端、云端校验自主定制服务的方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101620536A (zh) * 2009-08-17 2010-01-06 用友软件股份有限公司 一种调用功能函数的方法和装置
CN101667139A (zh) * 2009-10-13 2010-03-10 金蝶软件(中国)有限公司 基于集合类型对象的服务程序调用方法、装置及系统
CN101976188A (zh) * 2010-05-26 2011-02-16 天津大学 面向AJAX协议的OpenApi数据自动加载系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101620536A (zh) * 2009-08-17 2010-01-06 用友软件股份有限公司 一种调用功能函数的方法和装置
CN101667139A (zh) * 2009-10-13 2010-03-10 金蝶软件(中国)有限公司 基于集合类型对象的服务程序调用方法、装置及系统
CN101976188A (zh) * 2010-05-26 2011-02-16 天津大学 面向AJAX协议的OpenApi数据自动加载系统

Also Published As

Publication number Publication date
WO2011127863A3 (zh) 2012-05-03
WO2011127863A2 (zh) 2011-10-20
CN102203736A (zh) 2011-09-28

Similar Documents

Publication Publication Date Title
CN102203736B (zh) 开放应用程序编程接口调用方法及设备
US11265378B2 (en) Cloud storage methods and systems
US10747505B1 (en) API specification generation
US8266220B2 (en) Email management and rendering
US8977636B2 (en) Synthesizing aggregate data of disparate data types into data of a uniform data type
WO2017117509A1 (en) Universal interaction platform for people, services, and devices
WO2006138473A2 (en) Electronic content classification
CN109964507B (zh) 网络功能的管理方法、管理单元及系统
WO2010027926A2 (en) Automted information-provision system
US20220043935A1 (en) Data processing systems and methods for automatically redacting unstructured data from a data subject access request
US10372512B2 (en) Method and apparatus for automatic processing of service requests on an electronic device
US20130094403A1 (en) Method and apparatus for providing sensor network information
US8621550B1 (en) Information technology resource compliance templates
JP6685985B2 (ja) 分類支援装置、分類支援方法、および分類支援プログラム
US20120233189A1 (en) Transmitting and receiving a file in a network environment
CN114945927A (zh) 端到端电子邮件标签预测
CN114385382A (zh) 轻应用的访问方法、装置、计算机设备和存储介质
US7792969B2 (en) Message interface for configuring web services for remote portlets
JP2001195372A (ja) エージェントサービス提供方法及びコンピュータ読み取り可能な記録媒体
JP4691107B2 (ja) サービスを見付けるために使用されるプリファレンス構築のための方法および装置
JP3820661B2 (ja) ハイパーテキスト管理装置
US8412766B1 (en) Method and apparatus for tracking client navigation among multiple resources in communication session information saved by a server
CN108694219A (zh) 一种数据处理方法及装置
KR20090131914A (ko) 개인 데이터 검색 서비스 제공 방법 및 시스템
CA3154033A1 (en) Custom report builder

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant