CN107920094A - 数据获取方法、装置、服务器及网络设备 - Google Patents

数据获取方法、装置、服务器及网络设备 Download PDF

Info

Publication number
CN107920094A
CN107920094A CN201610879445.0A CN201610879445A CN107920094A CN 107920094 A CN107920094 A CN 107920094A CN 201610879445 A CN201610879445 A CN 201610879445A CN 107920094 A CN107920094 A CN 107920094A
Authority
CN
China
Prior art keywords
parameter
value
call parameters
api
item
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.)
Granted
Application number
CN201610879445.0A
Other languages
English (en)
Other versions
CN107920094B (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201610879445.0A priority Critical patent/CN107920094B/zh
Publication of CN107920094A publication Critical patent/CN107920094A/zh
Application granted granted Critical
Publication of CN107920094B publication Critical patent/CN107920094B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Telephonic Communication Services (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请公开了数据获取方法、装置、服务器及网络设备,该方法包括:确定需要通过应用程序编程接口API进行调用的多项数据;基于与所述多项数据相对应的调用参数及所述调用参数的值,将对所述多项数据的调用整合在单条API请求报文内;将所述单条API请求报文发送给网络设备,以使所述网络设备能够同时发送获取所述多项数据的多条请求。应用本申请实施例,能够大大缩短通过API调用多项数据的时间,减少对网络资源的占用,简化API调用的流程,优化了用户体验。

Description

数据获取方法、装置、服务器及网络设备
技术领域
本申请涉及网络通信技术领域,尤其涉及数据获取方法、装置、服务器及网络设备。
背景技术
现有技术中,开放平台的ISV(Independent Software Vendors,独立软件开发商)需要通过API(Application Programming Interface,应用程序编程接口)调用来获取例如订单、商品、用户信息等数据。一次API调用只能获取一项数据,举例而言,一次API调用可以获取一笔订单数据、一个商品数据或者是一个城市的天气数据。
对于每个ISV,其基于开放平台实现任一功能时,通常需要获取多种类型的信息,每一类型的信息对应的数据通过对应的API调用获得,比如:ISV需要在一个页面上展示某个商品的信息及与该商品有关的订单信息。在这种场景下,针对每条订单信息都需要发起一个API调用,针对该商品信息也需要发起一个API调用,ISV通常的做法是顺序发起上述多个API调用,网关对多个API调用分别进行公共逻辑校验,并向对应的数据提供方调用对应的数据,网关获取到这些数据的时间至少为每次API调用的响应时间之和,而且ISV需得到最后一个API调用请求的响应之后,才能进行页面响应。
在大量ISV大规模调用API的场景下,响应时间过长、网络资源占用过度等问题都带来非常差的用户体验。
发明内容
本申请提供一种数据获取方法、装置、服务器及网络设备,以解决现有技术中通过API调用多项数据需要发起多次API调用,响应时间过长,占用网络资源过多等问题。
根据本申请实施例的第一方面,提供一种数据获取方法,所述方法应用在服务器上,所述方法包括:
确定需要通过API进行调用的多项数据;
基于与所述多项数据相对应的调用参数及所述调用参数的值,将对所述多项数据的调用整合在单条API请求报文内;
将所述单条API请求报文发送给网络设备,以使所述网络设备能够同时发送获取所述多项数据的多条请求。
根据本申请实施例的第二方面,提供一种数据获取方法,所述方法应用在网络设备上,所述方法包括:
接收服务器发送的单条API请求报文,所述单条API请求报文用于请求通过API调用多项数据;
将所述单条API请求报文中的调用参数及所述调用参数的值进行组合,基于组合结果生成针对各项数据的API子请求报文;
将多条所述API子请求报文同时发送给对应的数据提供方,以获取所述各项数据。
根据本申请实施例的第三方面,提供一种数据获取装置,所述装置应用在服务器上,所述装置包括:
第一确定单元,用于确定需要通过API进行调用的多项数据;
第一生成单元,用于基于与所述多项数据相对应的调用参数及所述调用参数的值,将对所述多项数据的调用整合在单条API请求报文内;
第一发送单元,用于将所述单条API请求报文发送给网络设备,以使所述网络设备能够同时发送获取所述多项数据的多条请求。
根据本申请实施例的第四方面,提供另一种数据获取装置,所述装置应用在网络设备上,所述装置包括:
第一接收单元,用于接收服务器发送的单条API请求报文,所述单条API请求报文用于请求通过API调用多项数据;
第二生成单元,用于将所述单条API请求报文中的调用参数及所述调用参数的值进行组合,基于组合结果生成针对各项数据的API子请求报文;
第二发送单元,用于将多条所述API子请求报文同时发送给对应的数据提供方,以获取所述各项数据。
根据本申请实施例的第五方面,提供一种服务器,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为:
确定需要通过API进行调用的多项数据;
基于与所述多项数据相对应的调用参数及所述调用参数的值,将对所述多项数据的调用整合在单条API请求报文内;
将所述单条API请求报文发送给网络设备,以使所述网络设备能够同时发送获取所述多项数据的多条请求。
根据本申请实施例的第六方面,提供一种网络设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为:
接收服务器发送的单条API请求报文,所述单条API请求报文用于请求通过API调用多项数据;
将所述单条API请求报文中的调用参数及所述调用参数的值进行组合,基于组合结果生成针对各项数据的API子请求报文;
将多条所述API子请求报文同时发送给对应的数据提供方,以获取所述各项数据。
本申请实施例服务器通过将待获取的多项数据的调用参数进行组合,将各项数据的调用参数及其值整合在单条API请求报文内,能够节省服务器发送API请求报文所消耗的网络流量,提高对网络资源的使用效率,并且实现了仅通过一次API调用就能够获取多项数据;而且网络设备以并发的方式,多线程将多条API子请求报文同时发送给数据提供方,与现有技术中网络设备依次将针对各项数据的API请求报文发送给第二服务器相比,获取到多项数据的时间大大减小,现有技术中获取到多项数据所需的时间至少为各项数据的获取时间之和,而本申请中第二服务器获取到多项数据的所需的时间为响应最慢的数据的获取时间;此外,本申请中的API请求报文对数据类型没有限制,因而通过一次API调用能够获取多种类型的数据。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请数据获取方法的场景示意图;
图2为本申请数据获取方法的一个实施例流程图;
图3为本申请数据获取方法的另一个实施例流程图;
图4为本申请数据获取装置所在设备的一种硬件结构图;
图5为本申请数据获取装置所在设备的另一种硬件结构图;
图6为本申请数据获取装置的一个实施例框图;
图7为本申请数据获取装置的另一个实施例框图。
具体实施方式
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
现有技术中,ISV需要通过API调用数据的场景包括:在一个页面上展示商品数据、商家数据、用户数据或天气数据等;对某些数据例如某个时间段内的订单数据进行分析;汇总某个时间段内的订单以便发货,等。在这些场景下,ISV针对一项数据要向网关发送一条API请求,也就是说一次API调用只能获取一项数据,因而,在ISV需要获取多项数据时,要向网关顺序发送多条API请求,网关再依次将这些API请求发送给数据提供方。这种方式下,首先,ISV获取到多项数据的时间至少为多次API调用的响应时间之和,响应时间较长;其次,这些API请求中的一些参数为重复的参数,因而大量参数的重复传输对网络资源的占用造成极大的浪费;再次,对于ISV发起的每个API请求,网关都需要进行一系列的签名计算和校验、身份校验及安全等级校验等,这个过程也耗费较长的时间。因而,本申请的实施例提出一种新的数据获取方法,通过将需要获取的多项数据的调用整合在单条API请求报文内,将单条API请求报文发送给网络设备,来实现多项数据的同时调用。网关只需将单条API请求报文中的调用参数及对应的值根据预设的规则进行组合,得到针对各项数据的API子请求报文,将各API子请求报文并发发送给对应的数据提供方就能够获取到多项数据,并解决相关技术中存在的服务器向网络设备依次发送针对每项数据的API请求,以及网关向数据提供方依次发送针对每项数据的API请求来获取多项数据所带来的数据获取时间长、网络资源占用过度等问题。本申请的实施例可以应用在服务器和网络设备中,服务器可以是一个物理或逻辑服务器,也可以是由两个或两个以上分担不同职责的物理或逻辑服务器、相互协同来实现本申请实施例中服务器的各项功能。本申请实施例对服务器的种类,以及服务器之间通信网络的类型、协议等均不做限定。
参见图1,为本申请实施例的数据获取的场景示意图:作为ISV侧的第一服务器与作为开放平台的网关的网络设备连接,网络设备与多个作为数据提供方的第二服务器连接。
应用在第一服务器上的数据获取方法的流程如图2所示,包括以下步骤:
步骤201、确定需要通过API进行调用的多项数据。
其中,多项数据的数据类型可以包括交易数据、商品数据、订单数据、用户信息数据、甚至天气数据等多种类型,一项数据包括一个类型的数据,如果该类型的数据与用户相关,则一项数据仅针对一个用户。多项数据的类型可以相同,也可以不同,也就是说,本申请可以通过一次API调用获取多种类型的数据的集合。
步骤202、基于与多项数据相对应的调用参数及调用参数的值,将对多项数据的调用整合在单条API请求报文内。
本申请中,每一项数据都具有对应的调用参数,在确定了调用参数之后,将针对各项数据的调用参数进行拆分,具体步骤如下:
首先,基于各项数据的类型查询获取各项数据分别需要调用的API及API的定义。
在一实施例中,在开放平台中,存储有各种类型的数据及API基本信息的映射关系,API基本信息包括API名称、API定义等,通过查询该映射关系,能够确定获取各项数据需要调用的API名称,以及API定义。
其次,基于查询到的各API的定义确定对应于各项数据的调用参数。
在API定义中,明确了调用该API需要提供的调用参数,因而基于查询到的API定义能够确定针对各项数据的调用参数。
然后,将针对各项数据的各调用参数分别拆分为系统参数、以及公共参数和/或私有参数,也就是说,公共参数有可能为空,私有参数也有可能为空,并确定系统参数、公共参数及私有参数的值。
其中,系统参数为预设置的一些参数,可以包括:sign(签名)、timestamp(时间戳)、v(版本)、app_key(应用标识)、sign_method(签名方式)、session(用户态用户授权令牌)等,也可以将系统参数称之为URL(Uniform Resource Locator,统一资源定位器)参数。系统参数与ISV有关,签名由第一服务器基于预设置的算法生成;时间戳为当前时间,由此能够确定API请求报文的有效时间;v为版本;应用标识、即应用的键值用于标识ISV的身份;用户态用户授权令牌也就是用户身份的签名。
在确定了系统参数之后,第一服务器可以从除系统参数以外的调用参数中确定公共参数及公共参数的值。
首先,第一服务器判断在除系统参数以外的调用参数中,各项数据针对同一调用参数是否具有相同的值;
在判断为至少两项数据针对同一调用参数具有相同的值,且其他各项数据针对该同一调用参数的值都不相同时,将该同一调用参数确定为公共参数,将该相同的值确定为公共参数的值;
在判断为至少两项数据针对同一调用参数具有相同的值,且至少其他两项数据针对同一调用参数具有相同的另一值时,基于该值及出现的次数、另一值及出现的次数确定公共参数及公共参数的值。
例如,分别将该值的字长与该值出现的次数相乘,将另一值的字长与另一值出现的次数相乘;将该同一调用参数确定为公共参数,将结果较大者对应的值确定为公共参数的值。
针对上述第一种情况,即“判断为至少两项数据针对同一调用参数具有相同的值,且其他各项数据针对该同一调用参数的值都不相同”的情况,举例而言,第一服务器总共要获取9项数据,其中6项数据针对调用参数“method”的值都为“trade”,剩下的3项数据针对该调用参数“method”的值都不为“trade”,且互不相同,那么将调用参数“method”确定为公共参数,将“trade”确定为调用参数“method”的值。
针对上述第二种情况,即“判断为至少两项数据针对同一调用参数具有相同的值,且至少其他两项数据针对同一调用参数具有相同的另一值”的情况,举例而言,第一服务器总共要获取9项数据,其中,3项数据针对调用参数“method”的值为“trade”,2项数据针对调用参数“method”的值为“weather”,那么计算3×(trade的字长),以及2×(weather的字长),可以看出3×(trade的字长)的结果更大,因而将“method”作为公共参数,将“trade”作为公共参数的值。同理,如果还有另外2项数据针对该同一调用参数“method”具有其他的相同的值,那么也将该第三个值的字长与出现的次数相乘,比较三个结果,取最大结果对应的值作为公共参数的值。
由上述实施例可见,通过基于预设的系统参数确定各项数据的系统参数及其值,并基于各项数据除系统参数以外的、具有相同的值的调用参数确定公共参数及其值,以及确定除系统参数和公共参数以外的私有参数及其值,然后将所确定的参数及其值整合在单条API请求报文内,与现有技术中将获取每一项数据所需的调用参数分别写在对应的API请求报文内,导致各API请求报文中包含大量重复的调用参数相比,能够节省第一服务器的网络流量,加快多项数据的获取时间,实现网络资源的高效利用。
如果任意两项数据针对同一调用参数都不具有相同的值,那么确定公共参数为空,也就是说只将调用参数拆分为系统参数和私有参数即可。
本申请实施例中,针对要请求获取的多项数据,仅生成单条API请求报文。
API请求报文的格式如下:
结合上述报文格式,生成API请求报文的过程可以包括:
首先,将域名路径写入到API请求报文的路径区域,该域名路径用于标识该单条API请求报文请求获取多项数据。
结合上述报文格式,/router/batch?表示域名路径,通过域名路径可以区分该条API请求报文是用于请求一项数据还是用于请求获取多份数据,如果如现有技术那样一条API请求报文仅请求获取一份数据,即API请求报文为单次API调用,那么域名路径的后缀为rest,例如http://gw.api.taobao.com/router/rest;如果采用本发明实施例提供的方法,一条API请求报文请求获取至少两份数据,即批量API调用,那么域名路径的后缀为batch,例如http://gw.api.taobao.com/router/batch。
其次,将系统参数及系统参数的值写入到API请求报文的系统区域。
结合上述报文格式,在域名路径的后面,以&分隔开的部分即各个系统参数及系统参数的值。
然后,在公共参数不为空时,将多项数据的公共参数及公共参数的值写入到API请求报文的公共区域。
结合上述报文格式,#PUBLIC#为API请求报文的公共区域,用于写入多项数据的调用参数中重复出现的部分调用参数。例如:method(API名称)、fields(字段)、session(用户态用户授权令牌)等。如果各项数据没有重复的调用参数,即没有公共参数,那么可以在API请求报文中删除#PUBLIC#行和第一个分隔符。
最后,在数据对应的私有参数不为空时,将各数据的私有参数及私有参数的值以设定分隔符进行分隔,并写入到API请求报文的私有区域。
结合上述报文格式,在公共区域的后面,可以以分隔符“-S-”分隔开的部分即对应各项数据的私有参数,如果某项数据对应的调用参数仅包括系统参数及公共参数,也就是说私有参数为空,那么在对应于该数据的私有区域写入占位符。
在一实施例中,Body体(私有区域)以x-www-form-urlencoded的标准格式去承载每项数据的私有参数,默认以\r\n-S-\r\n进行分割,私有参数的值需要进行URL编码(Encode)。第一服务器可以自定义私有参数的分隔符,方式为:httpHeader.put(“top-api-separator”,”????”),即如果不希望以“-S-”作为分隔符,可以以标头(header)的方式上传自定义的分隔符进行修改。
步骤203、将该单条API请求报文发送给网络设备,以使网络设备能够同时发送获取多项数据的多条请求。
本申请中,第一服务器以post方式向网络设备提交API请求报文。
由上述实施例可见,ISV服务器通过将待获取的多项数据的调用参数进行组合,将各项数据的调用参数及其值整合在单条API请求报文内,能够节省ISV服务器发送API请求报文所消耗的网络流量,提高对网络资源的使用效率,并且实现了仅通过一次API调用就能够获取多项数据;此外,本申请中的API请求报文对数据类型没有限制,因而通过一次API调用能够获取多种类型的数据。
应用在网络设备上的数据获取方法的流程如图3所示,包括以下步骤:
步骤301、接收服务器发送的单条API请求报文,该单条API请求报文用于请求通过API调用多项数据。
本申请步骤中,在网络设备接收到服务器发送的API请求报文时,对API请求报文进行解析,得到API请求报文中的域名路径,通过图2所示实施例可知,请求获取一项数据和请求获取多项数据的情况下,API请求报文中的域名路径的后缀是不同的,因而通过解析API请求报文中的域名路径,能够确定该API请求报文请求获取多项数据,而非一项数据。
步骤302、将API请求报文中的调用参数及调用参数的值进行组合,基于组合结果生成针对各项数据的API子请求报文。
结合图2所示实施例,API请求报文中的调用参数一部分为系统参数,一部分为公共参数,还有一部分为私有参数,其中公共参数和私有参数都可以为空。要生成API子请求报文,网络设备首先要将系统参数和公共参数及对应的值,分别与对应于各项数据的私有参数及其值进行组合。在组合过程中,如果出现了任意两个类型的调用参数为同一调用参数的情况,例如,某个公共参数和某个私有参数为同一调用参数,某个系统参数和某个公共参数为同一调用参数等情况,那么,按照私有参数的优先级>公共参数的优先级>系统参数的优先级的原则,使用高优先级的调用参数的值覆盖低优先级的调用参数的值,从而得到针对各项数据的调用参数,然后网络设备基于该针对各项数据的调用参数生成针对各项数据的API子请求报文。
举例而言,公共参数和对应于第m项数据的私有参数都为“method”,公共参数“method”的值为“trade.get”,私有参数“method”的值为“goods.get”,那么因为私有参数的优先级高于公共参数,因而在生成API子请求报文时,将对应于该第m项数据的调用参数“method”的值确定为“goods.get”,也就是说对于第m项数据的对应的API子请求报文,请求获取的是商品数据而非交易数据。
再例如,API请求报文中请求获取4项数据,其中请求的前3项数据为用户a的数据,最后一项数据为用户b的数据,那么在#PUBLIC#区域中,调用参数用户名的值为“a”,在私有区域的id=4中,即第4项数据中,写入调用参数用户名的值为“b”,那么由于私有参数的优先级高于公共参数,因而在生成API子请求报文时,针对第4项数据,调用参数用户名的值为优先级较高的私有参数的值“b”,而非“a”。
此外,在本步骤之前,网络设备还以单线程的方式对API请求报文进行公共逻辑计算。计算的方式与现有技术相同,包括如签名校验、ISV身份校验、安全等级校验以及其他只需要进行单次计算的逻辑。现有技术中需要对每项数据的API请求报文进行一次公共逻辑计算,也就是说要获取多少项数据就需要进行多少次公共逻辑计算,而本申请中由于可以针对多项数据生成单条API请求报文,因而针对多项数据只进行一次公共逻辑计算即可,因而提高了逻辑校验的速度,也就是提高了获取多项数据的速度。
在校验通过之后,再提取API请求报文中的参数。
例如,本申请实施例按照下述方式进行签名:
首先,将所有的系统参数按ASCII顺序进行排序。例如:
app_key=“12345”
format=“json”
sign_method=“md5”
timestamp=“2016-01-01 12:00:00”
v=“2.0”
然后,拼接各调用参数的参数名与参数值,并拼接整个body体,即私有参数区域的内容。
app_key12345678fieldsnum_iid,title,nick,price,
numformatjsonmethodtaobao.item.seller.getnum_iid11223344
sessiontestsign_methodmd5timestamp2016-01-0112:00:00v2.0$
{http_body}
最后,假设app的secret为helloworld,则签名结果为:
hex(md5(helloworld+上述步骤拼接好的值+
helloworld))=“66987CB115214E59E6EC978214934FB8”。
步骤303、将多条API子请求报文同时发送给对应的数据提供方,以获取各项数据。
本申请中,网络设备通过调用参数method,即API名称,能够确定对应的数据发送方,即图1中的第二服务器,然后以并发的方式,多线程将多条API子请求报文同时发送给数据提供方。与现有技术中网络设备依次将针对各项数据的API请求报文发送给第二服务器相比,获取到多项数据的时间大大减小,现有技术中获取到多项数据所需的时间至少为各项数据的获取时间之和,而本申请中网络设备获取到多项数据的所需的时间为响应最慢的数据的获取时间。
步骤304、接收各数据提供方返回的各项数据,并基于各项数据生成单条API响应报文。
本申请中,首先,网络设备每接收到一项数据,都会启动一个工作线程对该项数据进行处理,包括过滤、模糊混淆、加密等操作,然后将处理后的结果存储在批量API收集器中;批量API收集器中包含对每项数据的API子请求的响应的计数器,每当存储一项响应的数据,计数器就会加1,当计数器的值与批量API的数量,即请求获取的数据的项数一致时,基于API请求报文对各项数据的请求顺序来对处理后的各项数据进行排序;将排序后的各项数据以设定的分隔符进行分隔,并写入到API响应报文的响应区域,从而生成一条与API请求报文对应的API响应报文。
API响应报文的格式如下:
对于第一种情况,通常指的是API响应报文只有一条结果:未获取任何数据。出现这种情况一般是由于签名错误导致的,例如应用不存在,签名不一致等,这都意味着ISV身份不合法,因而无法调用到对应的数据。
对于第二种情况,通常指的是成功获取到至少一项数据的情况,但是不管成功获取了几项数据,响应结果的数量和请求报文里面的请求的数据的项数一致,响应顺序也会和请求顺序保持一致。比如第一服务器向网络设备提交了包含15项数据的API请求报文,网络设备接收到的响应结果可能是10条成功,3条流控,2条服务提供端异常,无论响应结果是哪一种,都会体现在响应报文中,也就是说响应报文依然会有15条响应结果。成功调用的响应结果和失败调用的响应结果互不影响。
在一实施例中,网络设备通过下述语句承载响应结果,并对响应结果以与API请求报文一致的分隔符进行分隔。
{"time_get_response":{"time":"2016-01-0510:53:02","request_id":"16t6sm2gxmm5q"}}
步骤305、将API响应报文发送给第一服务器。
由于在API响应报文中,网络设备基于API请求报文中对各项数据的请求顺序来对处理后的各项数据进行排序,因而第一服务器直接读取API响应报文中的数据即可,无需对API请求报文中的数据进行编码,或者进行标识,因而节省了第一服务器的时间,也降低了第一服务器的使用成本。下面以一个简单的示例来对本申请提供的方法进行说明:ISV需要在一个页面上展示5个订单的详情数据。那么ISV需要通过开发平台获取相应的5项数据。因而ISV向网关发送一条API请求报文。该示例仅为演示使用批量API技术获取订单数据,但是本申请不局限于获取订单数据,适用于任意API调用场景。
其中API定义如下:
API入参(可以为系统参数也可以为公共参数)
假设,ISV需要获取的5个订单编号依次是1、2、3、4、5。
Fields字段为:tid,type,status,payment,orders。
现有技术中采用的调用方式为:针对订单1生成下述API请求报文:
针对订单2-5分别生成4条类似于上述报文的API请求报文,从而总共生成5条API请求报文。
上述方式的明显缺陷在于:5个订单中包含有一些重复的调用参数,例如:method、session、app_key、fields等,这些重复的调用参数被传输至网络设备重复传输了5次,从而对网络资源的占用造成极大的浪费,并且将5条API请求报文逐条发送给网络设备也需要花费较长的时间。
假设5次完整的API调用,即发送API请求报文和接收到返回的API响应报文,这5次API调用所花费的时间分别为:248ms、171ms、207ms、180ms以及214ms,那么使用现有技术来获取上述5个订单的数据所花费的总时间为:248ms+171ms+207ms+180ms+214ms=1020ms。
而本申请实施例中,使用批量API技术来获取上述5个订单的数据的请求方式如下所示:
上述请求中,包含有#PUBLIC#区域,该区域中所包含的是5个订单的公共参数,由-S-所隔开的是5个订单的私有参数。
因而,使用本申请提出的将对多项数据的调用整合为单次API调用的技术,能把针对各项数据的公共参数合并写入在单条API请求报文内,即仅在API请求报文中出现一次即可,而非像现有技术中那样针对每项数据都需将所有的调用参数写在一条API请求报文内,从而通过对比可以发现,获取同样的数据,向网关发送的调用参数大大减少。而且,网络设备对单条API请求报文中的调用参数及其值重新组合后,能够生成针对各项数据的API子请求报文,并同时发送这些API子请求报文,从而实现了对多项数据的快速获取,节省了数据获取的时间。
上述实验表明,使用本申请提供的方法只需要255ms就能获取到5个订单的数据,与现有技术中花费1020ms相比,大大节省了数据获取的时间。
与本申请数据获取方法的实施例相对应,本申请还提供了数据获取装置及设备的实施例。
本申请数据获取装置的实施例可以应用在用于进行数据获取的服务器上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本申请数据获取装置所在设备的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常根据该设备的实际功能,还可以包括其他硬件,图4中不再一一示出。
本申请数据获取装置的实施例可以应用在用于进行数据获取的网络设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本申请数据获取装置所在设备的一种硬件结构图,除了图5所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常根据该设备的实际功能,还可以包括其他硬件,图5中不再一一示出。
参见图6,为本申请数据获取装置的一个实施例框图,该装置可以应用在服务器上,该装置包括:第一确定单元610、第一生成单元620和第一发送单元630。
第一确定单元610,用于确定需要通过API进行调用的多项数据;
第一生成单元620,用于基于与多项数据相对应的调用参数及所述调用参数的值,将对多项数据的调用整合在单条API请求报文内;
第一发送单元630,用于将所述单条API请求报文发送给网络设备,以使所述网络设备能够同时发送获取所述多项数据的多条请求。
在一个可选的实现方式中:该装置还可以包括(图6中未示出):
查询单元,用于基于各项数据的类型查询获取各项数据分别需要调用的API及API的定义;
第二确定单元,用于基于查询到的各API的定义确定对应于各项数据的调用参数;
第三确定单元,用于将对应于各项数据的所述调用参数分别拆分为系统参数、以及公共参数和/或私有参数,并分别确定所述系统参数、公共参数及私有参数的值。
在另一个可选的实现方式中:第二确定单元可以包括(图6中未示出):
第一确定子单元,用于基于预设置的系统参数从对应于各项数据的所述调用参数中确定所述服务器的系统参数及系统参数的值;
第二确定子单元,用于在各项数据针对除所述系统参数以外的同一调用参数具有相同的值时,确定公共参数及公共参数的值;
第三确定子单元,用于将除系统参数和公共参数以外的调用参数确定为私有参数。
在另一个可选的实现方式中:第二确定子单元可以包括(图6中未示出):
判断模块,用于对于除所述系统参数以外的所述调用参数,判断各项数据针对同一调用参数是否具有相同的值;
第一确定模块,用于在判断为至少两项数据针对同一调用参数具有相同的值,且其他各项数据针对所述同一调用参数的值都不相同时,将所述同一调用参数确定为公共参数,将所述相同的值确定为所述公共参数的值;
第二确定模块,用于在判断为至少两项数据针对同一调用参数具有相同的值,且至少其他两项数据针对所述同一调用参数具有相同的另一值时,基于所述值及出现的次数、所述另一值及出现的次数确定公共参数及公共参数的值。
在另一个可选的实现方式中:第二确定模块可以包括(图6中未示出):
计算子模块,用于分别将所述值的字长与所述值出现的次数相乘,将所述另一值的字长与所述另一值出现的次数相乘;
第一确定子模块,用于将所述同一调用参数确定为公共参数,将相乘结果较大者对应的值确定为所述公共参数的值。
在另一个可选的实现方式中:第二确定模块还可以包括(图6中未示出):
第二确定子模块,用于在判断为任意两项数据针对同一调用参数都不具有相同的值时,确定所述公共参数为空。
在另一个可选的实现方式中:第一生成单元630还可以包括(图6中未示出):
第一写入子单元,用于将所述系统参数及所述系统参数的值写入到所述API请求报文的系统区域;
第二写入子单元,用于在数据对应的公共参数不为空时,将数据的公共参数及所述公共参数的值写入到API请求报文的公共区域;
第三写入子单元,用于在数据对应的私有参数不为空时,将数据的私有参数及所述私有参数的值以设定分隔符进行分隔,并写入到所述API请求报文的私有区域。
在另一个可选的实现方式中:第一生成单元620还可以包括(图6中未示出):
第四写入子单元,用于将域名路径写入到所述API请求报文的路径区域,所述域名路径用于标识所述API请求报文请求获取多项数据。
在另一个可选的实现方式中:第一生成单元620还可以包括(图6中未示出):
第五写入子单元,用于在数据对应的私有参数为空时,将占位符写入所述API请求报文的对应于所述数据的私有区域。
参见图7,为本申请数据获取装置的另一个实施例框图,该装置可以应用于网络设备,该装置包括:第一接收单元710、第二生成单元720和第二发送单元730。
第一接收单元710,用于接收服务器发送的单条API请求报文,单条API请求报文用于请求通过API调用多项数据;
第二生成单元720,用于将单条API请求报文中的调用参数及调用参数的值进行拆分和组合,基于组合结果生成针对各项数据的API子请求报文;
第二发送单元730,用于将多条API子请求报文同时发送给对应的数据提供方,以获取所述各项数据。
在一个可选的实现方式中:第一接收单元710可以包括(图7中未示出):
接收子单元,用于接收所述服务器发送的单条API请求报文;
第三确定子单元,用于解析所述单条API请求报文中的域名路径,基于所述域名路径确定单条API请求报文请求通过API调用多项数据。
在另一个可选的实现方式中:所述调用参数包括系统参数、以及公共参数和/或私有参数,第二生成单元720可以包括(图6中未示出):
提取子单元,用于提取单条API请求报文中的系统参数及系统参数的值、公共参数及公共参数的值、私有参数及私有参数的值;
组合子单元,用于将所述系统参数及系统参数的值、所述公共参数及公共参数的值分别与对应于各项数据的私有参数及私有参数的值进行组合;
覆盖子单元,用于在针对一项数据的系统参数、公共参数及私有参数中的任意两个为同一调用参数时,基于私有参数的优先级高于公共参数的优先级、公共参数的优先级高于系统参数的优先级的原则,使用高优先级的调用参数的值覆盖低优先级的调用参数的值,得到针对各项数据的调用参数;
生成子单元,用于基于针对各项数据的调用参数生成针对各项数据的API子请求报文。
在另一个可选的实现方式中:该装置还可以包括(图7中未示出):
第二接收单元,用于接收各所述数据提供方返回的各项数据;
第三生成单元,用于基于所述各项数据生成单条API响应报文;
第三发送单元,用于将所述单条API响应报文发送给所述服务器。
在另一个可选的实现方式中:第三生成单元可以包括(图7中未示出):
处理子单元,用于对接收的各项数据进行处理;
排序子单元,用于基于所述单条API请求报文对各项数据的请求顺序对处理后的各项数据进行排序;
第六写入子单元,用于将排序后的各项数据以设定的分隔符进行分隔,写入到API响应报文的响应区域,生成单条API响应报文。
在另一个可选的实现方式中:该装置还可以包括(图7中未示出):
校验单元,用于以单线程的方式对所述API请求报文进行公共逻辑校验。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
由上述实施例可见,服务器通过将待获取的多项数据的调用参数进行组合,将各项数据的调用参数及其值整合在单条API请求报文内,能够节省服务器发送API请求报文所消耗的网络流量,减少网络开销,提高对网络资源的使用效率,并且实现了仅通过一次API调用就能够获取多项数据;而且网络设备以并发的方式,多线程将多条API子请求报文同时发送给数据提供方,与现有技术中网络设备依次将针对各项数据的API请求报文发送给第二服务器相比,获取到多项数据的时间大大减小,现有技术中获取到多项数据所需的时间至少为各项数据的获取时间之和,而本申请中第二服务器获取到多项数据的所需的时间为响应最慢的数据的获取时间;此外,本申请中的API请求报文对数据类型没有限制,因而通过一次API调用能够获取多种类型的数据。。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (32)

1.一种数据获取方法,其特征在于,所述方法应用在服务器上,所述方法包括:
确定需要通过应用程序编程接口API进行调用的多项数据;
基于与所述多项数据相对应的调用参数及所述调用参数的值,将对所述多项数据的调用整合在单条API请求报文内;
将所述单条API请求报文发送给网络设备,以使所述网络设备能够同时发送获取所述多项数据的多条请求。
2.根据权利要求1所述的方法,其特征在于,所述将对所述多项数据的调用整合在单条API请求报文内之前,所述方法还包括:
基于各项数据的类型查询获取各项数据分别需要调用的API及API的定义;
基于查询到的各所述API的定义确定对应于各项数据的调用参数;
将对应于各项数据的所述调用参数分别拆分为系统参数、以及公共参数和/或私有参数,并分别确定所述系统参数、公共参数及私有参数的值。
3.根据权利要求2所述的方法,其特征在于,所述将对应于各项数据的所述调用参数分别拆分为系统参数、以及公共参数和/或私有参数,并分别确定所述系统参数、公共参数及私有参数的值,包括:
基于预设置的系统参数从对应于各项数据的调用参数中确定所述服务器的系统参数及所述系统参数的值;
在各项数据针对除所述系统参数以外的同一调用参数具有相同的值时,确定公共参数及所述公共参数的值;
将除所述系统参数和所述公共参数以外的调用参数确定为私有参数,确定所述私有参数的值。
4.根据权利要求3所述的方法,其特征在于,所述在各项数据针对除所述系统参数以外的同一调用参数具有相同的值时,确定公共参数及所述公共参数的值,包括:
对于除所述系统参数以外的所述调用参数,判断各项数据针对同一调用参数是否具有相同的值;
在判断为至少两项数据针对同一调用参数具有相同的值,且其他各项数据针对所述同一调用参数的值都不相同时,将所述同一调用参数确定为公共参数,将所述相同的值确定为所述公共参数的值;
在判断为至少两项数据针对同一调用参数具有相同的值,且至少其他两项数据针对所述同一调用参数具有相同的另一值时,基于所述值及出现的次数、所述另一值及出现的次数确定公共参数及公共参数的值。
5.根据权利要求4所述的方法,其特征在于,所述基于所述值及出现的次数、所述另一值及出现的次数确定公共参数及所述公共参数的值,包括:
分别将所述值的字长与所述值出现的次数相乘,将所述另一值的字长与所述另一值出现的次数相乘;
将所述同一调用参数确定为公共参数,将相乘结果较大者对应的值确定为所述公共参数的值。
6.根据权利要求4所述的方法,其特征在于,所述判断各项数据针对同一调用参数是否具有相同的值之后,所述方法还包括:
在判断为任意两项数据针对同一调用参数都不具有相同的值时,确定所述公共参数为空。
7.根据权利要求3所述的方法,其特征在于,所述基于与所述多项数据相对应的调用参数及所述调用参数的值,将对所述多项数据的调用整合在单条API请求报文内,包括:
将所述系统参数及所述系统参数的值写入到所述API请求报文的系统区域;
在数据对应的公共参数不为空时,将数据的公共参数及所述公共参数的值写入到所述API请求报文的公共区域;
在数据对应的私有参数不为空时,将数据的私有参数及所述私有参数的值以设定分隔符进行分隔,并写入到所述API请求报文的私有区域。
8.根据权利要求7所述的方法,其特征在于,所述将所述系统参数及所述系统参数的值写入到所述API请求报文的系统区域之前,还包括:
将域名路径写入到所述API请求报文的路径区域,所述域名路径用于标识所述API请求报文请求获取多项数据。
9.根据权利要求7所述的方法,其特征在于,所述基于与所述多项数据相对应的调用参数及所述调用参数的值,将对所述多项数据的调用整合在单条API请求报文内,还包括:
在数据对应的私有参数为空时,将占位符写入所述API请求报文的对应于所述数据的私有区域。
10.一种数据获取方法,其特征在于,所述方法应用在网络设备上,所述方法包括:
接收服务器发送的单条API请求报文,所述单条API请求报文用于请求通过API调用多项数据;
将所述单条API请求报文中的调用参数及所述调用参数的值进行组合,基于组合结果生成针对各项数据的API子请求报文;
将多条所述API子请求报文同时发送给对应的数据提供方,以获取所述各项数据。
11.根据权利要求10所述的方法,其特征在于,所述接收服务器发送的单条API请求报文,包括:
接收所述服务器发送的单条API请求报文;
解析所述单条API请求报文中的域名路径,基于所述域名路径确定所述单条API请求报文请求通过API调用多项数据。
12.根据权利要求10所述的方法,其特征在于,所述调用参数包括系统参数、以及公共参数和/或私有参数,所述将所述API请求报文中的调用参数及所述调用参数的值进行组合,基于组合结果生成针对各项数据的API子请求报文,包括:
提取所述单条API请求报文中的系统参数及系统参数的值、公共参数及公共参数的值、私有参数及私有参数的值;
将所述系统参数及系统参数的值、所述公共参数及公共参数的值分别与对应于各项数据的私有参数及私有参数的值进行组合;
在针对一项数据的系统参数、公共参数及私有参数中的任意两个为同一调用参数时,基于私有参数的优先级高于公共参数的优先级、公共参数的优先级高于系统参数的优先级的原则,使用高优先级的调用参数的值覆盖低优先级的调用参数的值,得到针对各项数据的调用参数;
基于针对各项数据的调用参数生成针对各项数据的API子请求报文。
13.根据权利要求10所述的方法,其特征在于,所述将多条所述API子请求报文同时发送给对应的数据提供方之后,所述方法还包括:
接收各所述数据提供方返回的各项数据;
基于所述各项数据生成单条API响应报文;
将所述单条API响应报文发送给所述服务器。
14.根据权利要求13所述的方法,其特征在于,所述基于所述各项数据生成单条API响应报文,包括:
对接收的各项数据进行处理;
基于所述单条API请求报文对各项数据的请求顺序,对处理后的各项数据进行排序;
将排序后的各项数据以设定的分隔符进行分隔,写入到所述API响应报文的响应区域,生成单条API响应报文。
15.根据权利要求10所述的方法,其特征在于,所述接收服务器发送的单条API请求报文之后,所述方法还包括:
以单线程的方式对所述单条API请求报文进行单次公共逻辑校验。
16.一种数据获取装置,其特征在于,所述装置应用在服务器上,所述装置包括:
第一确定单元,用于确定需要通过应用程序编程接口API进行调用的多项数据;
第一生成单元,用于基于与所述多项数据相对应的调用参数及所述调用参数的值,将对所述多项数据的调用整合在单条API请求报文内;
第一发送单元,用于将所述单条API请求报文发送给网络设备,以使所述网络设备能够同时发送获取所述多项数据的多条请求。
17.根据权利要求16所述的装置,其特征在于,所述装置还包括:
查询单元,用于基于各项数据的类型查询获取各项数据分别需要调用的API及API的定义;
第二确定单元,用于基于查询到的各所述API的定义确定对应于各项数据的调用参数;
第三确定单元,用于将对应于各项数据的所述调用参数分别拆分为系统参数、以及公共参数和/或私有参数,并分别确定所述系统参数、公共参数及私有参数的值。
18.根据权利要求17所述的装置,其特征在于,所述第二确定单元包括:
第一确定子单元,用于基于预设置的系统参数从对应于各项数据的调用参数中确定所述服务器的系统参数及所述系统参数的值;
第二确定子单元,用于在各项数据针对除所述系统参数以外的同一调用参数具有相同的值时,确定公共参数及所述公共参数的值;
第三确定子单元,用于将除所述系统参数和所述公共参数以外的调用参数确定为私有参数,确定所述私有参数的值。
19.根据权利要求18所述的装置,其特征在于,所述第二确定子单元包括:
判断模块,用于对于除所述系统参数以外的所述调用参数,判断各项数据针对同一调用参数是否具有相同的值;
第一确定模块,用于在判断为至少两项数据针对同一调用参数具有相同的值,且其他各项数据针对所述同一调用参数的值都不相同时,将所述同一调用参数确定为公共参数,将所述相同的值确定为所述公共参数的值;
第二确定模块,用于在判断为至少两项数据针对同一调用参数具有相同的值,且至少其他两项数据针对所述同一调用参数具有相同的另一值时,基于所述值及出现的次数、所述另一值及出现的次数确定公共参数及公共参数的值。
20.根据权利要求19所述的装置,其特征在于,所述第二确定模块包括:
计算子模块,用于分别将所述值的字长与所述值出现的次数相乘,将所述另一值的字长与所述另一值出现的次数相乘;
第一确定子模块,用于将所述同一调用参数确定为公共参数,将相乘结果较大者对应的值确定为所述公共参数的值。
21.根据权利要求19所述的装置,其特征在于,所述第二确定模块还包括:
第二确定子模块,用于在判断为任意两项数据针对同一调用参数都不具有相同的值时,确定所述公共参数为空。
22.根据权利要求18所述的装置,其特征在于,所述第一生成单元包括:
第一写入子单元,用于将所述系统参数及所述系统参数的值写入到所述API请求报文的系统区域;
第二写入子单元,用于在数据对应的公共参数不为空时,将数据的公共参数及所述公共参数的值写入到所述API请求报文的公共区域;
第三写入子单元,用于在数据对应的私有参数不为空时,将数据的私有参数及所述私有参数的值以设定分隔符进行分隔,并写入到所述API请求报文的私有区域。
23.根据权利要求22所述的装置,其特征在于,所述第一生成单元还包括:
第四写入子单元,用于将域名路径写入到所述API请求报文的路径区域,所述域名路径用于标识所述API请求报文请求获取多项数据。
24.根据权利要求22所述的装置,其特征在于,所述第一生成单元还包括:
第五写入子单元,用于在数据对应的私有参数为空时,将占位符写入所述API请求报文的对应于所述数据的私有区域。
25.一种数据获取装置,其特征在于,所述装置应用在网络设备上,所述装置包括:
第一接收单元,用于接收服务器发送的单条API请求报文,所述单条API请求报文用于请求通过API调用多项数据;
第二生成单元,用于将所述单条API请求报文中的调用参数及所述调用参数的值进行组合,基于组合结果生成针对各项数据的API子请求报文;
第二发送单元,用于将多条所述API子请求报文同时发送给对应的数据提供方,以获取所述各项数据。
26.根据权利要求25所述的装置,其特征在于,所述第一接收单元包括:
接收子单元,用于接收所述服务器发送的单条API请求报文;
第三确定子单元,用于解析所述单条API请求报文中的域名路径,基于所述域名路径确定所述单条API请求报文请求通过API调用多项数据。
27.根据权利要求25所述的装置,其特征在于,所述调用参数包括系统参数、以及公共参数和/或私有参数,所述第二生成单元包括:
提取子单元,用于提取所述单条API请求报文中的系统参数及系统参数的值、公共参数及公共参数的值、私有参数及私有参数的值;
组合子单元,用于将所述系统参数及系统参数的值、所述公共参数及公共参数的值分别与对应于各项数据的私有参数及私有参数的值进行组合;
覆盖子单元,用于在针对一项数据的系统参数、公共参数及私有参数中的任意两个为同一调用参数时,基于私有参数的优先级高于公共参数的优先级、公共参数的优先级高于系统参数的优先级的原则,使用高优先级的调用参数的值覆盖低优先级的调用参数的值,得到针对各项数据的调用参数;
生成子单元,用于基于针对各项数据的调用参数生成针对各项数据的API子请求报文。
28.根据权利要求25所述的装置,其特征在于,所述装置还包括:
第二接收单元,用于接收各所述数据提供方返回的各项数据;
第三生成单元,用于基于所述各项数据生成单条API响应报文;
第三发送单元,用于将所述单条API响应报文发送给所述服务器。
29.根据权利要求28所述的装置,其特征在于,所述第三生成单元包括:
处理子单元,用于对接收的各项数据进行处理;
排序子单元,用于基于所述单条API请求报文对各项数据的请求顺序,对处理后的各项数据进行排序;
第六写入子单元,用于将排序后的各项数据以设定的分隔符进行分隔,写入到所述API响应报文的响应区域,生成单条API响应报文。
30.根据权利要求25所述的装置,其特征在于,所述装置还包括:
校验单元,用于以单线程的方式对所述单条API请求报文进行单次公共逻辑校验。
31.一种服务器,其特征在于,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为:
确定需要通过应用程序编程接口API进行调用的多项数据;
基于与所述多项数据相对应的调用参数及所述调用参数的值,将对所述多项数据的调用整合在单条API请求报文内;
将所述单条API请求报文发送给网络设备,以使所述网络设备能够同时发送获取所述多项数据的多条请求。
32.一种网络设备,其特征在于,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为:
接收服务器发送的单条API请求报文,所述单条API请求报文用于请求通过API调用多项数据;
将所述单条API请求报文中的调用参数及所述调用参数的值进行组合,基于组合结果生成针对各项数据的API子请求报文;
将多条所述API子请求报文同时发送给对应的数据提供方,以获取所述各项数据。
CN201610879445.0A 2016-10-08 2016-10-08 数据获取方法、装置、服务器及网络设备 Active CN107920094B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610879445.0A CN107920094B (zh) 2016-10-08 2016-10-08 数据获取方法、装置、服务器及网络设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610879445.0A CN107920094B (zh) 2016-10-08 2016-10-08 数据获取方法、装置、服务器及网络设备

Publications (2)

Publication Number Publication Date
CN107920094A true CN107920094A (zh) 2018-04-17
CN107920094B CN107920094B (zh) 2021-07-16

Family

ID=61892233

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610879445.0A Active CN107920094B (zh) 2016-10-08 2016-10-08 数据获取方法、装置、服务器及网络设备

Country Status (1)

Country Link
CN (1) CN107920094B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108984155A (zh) * 2018-05-17 2018-12-11 阿里巴巴集团控股有限公司 数据处理流程设定方法和装置
CN109379362A (zh) * 2018-10-23 2019-02-22 浪潮软件集团有限公司 一种web服务防篡改方法、系统、客户端和服务端
CN109547552A (zh) * 2018-11-29 2019-03-29 浙江鲸腾网络科技有限公司 Api请求处理方法、装置、存储介质及电子设备
CN109560895A (zh) * 2018-12-27 2019-04-02 北京百佑科技有限公司 数据传输方法及装置
CN110244938A (zh) * 2019-04-28 2019-09-17 阿里巴巴集团控股有限公司 一种json合并的数据处理方法及装置
CN110430264A (zh) * 2019-08-05 2019-11-08 黄颖 一种云计算中的数据读取方法
CN111355743A (zh) * 2020-03-11 2020-06-30 成都卓杭网络科技股份有限公司 一种基于api网关的管理方法及其系统
CN111367690A (zh) * 2020-03-03 2020-07-03 中国工商银行股份有限公司 一种支持组合api服务调用方法及装置
CN112199220A (zh) * 2020-12-01 2021-01-08 蚂蚁智信(杭州)信息技术有限公司 一种基于api网关的数据调用的方法和api网关

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1867898A (zh) * 2003-10-14 2006-11-22 国际商业机器公司 用于在面向服务的体系结构中处理服务请求的方法和装置
US20130212603A1 (en) * 2012-02-10 2013-08-15 Twilio, Inc. System and method for managing concurrent events
CN103345420A (zh) * 2013-06-03 2013-10-09 百度在线网络技术(北京)有限公司 批量调用api接口的方法、系统和装置
CN103841134A (zh) * 2012-11-22 2014-06-04 阿里巴巴集团控股有限公司 基于api发送、接收信息的方法、装置及系统
CN104335560A (zh) * 2012-06-08 2015-02-04 苹果公司 将数据从自动化助理传输至附件
CN104580095A (zh) * 2013-10-22 2015-04-29 华为软件技术有限公司 一种获取api资源的方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1867898A (zh) * 2003-10-14 2006-11-22 国际商业机器公司 用于在面向服务的体系结构中处理服务请求的方法和装置
US20130212603A1 (en) * 2012-02-10 2013-08-15 Twilio, Inc. System and method for managing concurrent events
CN104335560A (zh) * 2012-06-08 2015-02-04 苹果公司 将数据从自动化助理传输至附件
CN103841134A (zh) * 2012-11-22 2014-06-04 阿里巴巴集团控股有限公司 基于api发送、接收信息的方法、装置及系统
CN103345420A (zh) * 2013-06-03 2013-10-09 百度在线网络技术(北京)有限公司 批量调用api接口的方法、系统和装置
CN104580095A (zh) * 2013-10-22 2015-04-29 华为软件技术有限公司 一种获取api资源的方法及装置

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108984155A (zh) * 2018-05-17 2018-12-11 阿里巴巴集团控股有限公司 数据处理流程设定方法和装置
CN108984155B (zh) * 2018-05-17 2021-09-07 创新先进技术有限公司 数据处理流程设定方法和装置
CN109379362A (zh) * 2018-10-23 2019-02-22 浪潮软件集团有限公司 一种web服务防篡改方法、系统、客户端和服务端
CN109547552A (zh) * 2018-11-29 2019-03-29 浙江鲸腾网络科技有限公司 Api请求处理方法、装置、存储介质及电子设备
CN109560895A (zh) * 2018-12-27 2019-04-02 北京百佑科技有限公司 数据传输方法及装置
CN110244938A (zh) * 2019-04-28 2019-09-17 阿里巴巴集团控股有限公司 一种json合并的数据处理方法及装置
CN110430264A (zh) * 2019-08-05 2019-11-08 黄颖 一种云计算中的数据读取方法
CN111367690A (zh) * 2020-03-03 2020-07-03 中国工商银行股份有限公司 一种支持组合api服务调用方法及装置
CN111355743A (zh) * 2020-03-11 2020-06-30 成都卓杭网络科技股份有限公司 一种基于api网关的管理方法及其系统
CN111355743B (zh) * 2020-03-11 2021-07-06 成都卓杭网络科技股份有限公司 一种基于api网关的管理方法及其系统
CN112199220A (zh) * 2020-12-01 2021-01-08 蚂蚁智信(杭州)信息技术有限公司 一种基于api网关的数据调用的方法和api网关
CN112199220B (zh) * 2020-12-01 2021-03-02 蚂蚁智信(杭州)信息技术有限公司 一种基于api网关的数据调用的方法和api网关

Also Published As

Publication number Publication date
CN107920094B (zh) 2021-07-16

Similar Documents

Publication Publication Date Title
CN107920094A (zh) 数据获取方法、装置、服务器及网络设备
CN108415710B (zh) 在智能对话开发平台上发布、调用api的方法和系统
CN103227786B (zh) 一种网站登录信息填入方法及装置
CN103942093A (zh) 业务处理方法及系统
US7881304B2 (en) Using distributed aspects to reorder online application workflows
CN110245953B (zh) 一种信息验证方法、信息验证装置及电子设备
CN107688733B (zh) 业务接口调用方法、装置、用户终端和可读存储介质
CN103475484B (zh) USB key认证方法及系统
CA3059719C (en) Payment processing method, device, medium and electronic device
RU2734027C2 (ru) Способ и устройство для предотвращения атаки на сервер
KR20180011257A (ko) 자동 재충전 시스템, 방법 및 서버
CN104899482A (zh) 限制批量请求服务的方法和装置
CN104539516B (zh) 一种客服服务方法和一种客服服务器
CN108900562B (zh) 登录状态的共享方法、装置、电子设备及介质
CN106331042A (zh) 一种异构用户系统的单点登录方法及其装置
CN104253687B (zh) 降低验证效率方法、生成验证码方法、相关系统及服务器
CN105656979B (zh) 一种非结构化消息处理的方法、客户端、服务器及平台
US11436601B2 (en) Pre-built user interface for payment system and method
US9904662B2 (en) Real-time agreement analysis
CN111801696A (zh) 支付页面管理方法、设备、支付系统以及存储介质
CN113343216B (zh) 一种发行者的管理方法、装置、存储介质及服务器
CN115643054A (zh) 身份信息验证方法、装置、服务器、介质及产品
CN110968497A (zh) 基于树形拦截器的请求校验方法、装置、介质及电子设备
CN108234415A (zh) 用于验证用户的方法和装置
CN112929453A (zh) 一种共享session数据的方法和装置

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