CN109446261A - 一种基于多个接口混合调用数据的方法及其系统 - Google Patents

一种基于多个接口混合调用数据的方法及其系统 Download PDF

Info

Publication number
CN109446261A
CN109446261A CN201811288952.2A CN201811288952A CN109446261A CN 109446261 A CN109446261 A CN 109446261A CN 201811288952 A CN201811288952 A CN 201811288952A CN 109446261 A CN109446261 A CN 109446261A
Authority
CN
China
Prior art keywords
data
request
user
swoole
teledata
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.)
Pending
Application number
CN201811288952.2A
Other languages
English (en)
Inventor
褚思凡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Kuwo Technology Co Ltd
Original Assignee
Beijing Kuwo Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Kuwo Technology Co Ltd filed Critical Beijing Kuwo Technology Co Ltd
Priority to CN201811288952.2A priority Critical patent/CN109446261A/zh
Publication of CN109446261A publication Critical patent/CN109446261A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明涉及一种基于多个接口混合调用数据的方法及其系统,其中该方法包括以下步骤:用户根据具体的业务逻辑设置多种数据请求类型,所述数据请求类型包括本地数据请求、远程数据请、Swoole同步接口请求和Swoole异步接口请求;当用户发起数据请求时,服务端根据设置好的多种数据请求类型分别获取相应地数据,并返回给用户。本发明通过本地、远程、异步以及混合调用数据方式,可以保证每次接口调用都在使用最优的调用方式,以达到运行效率最大化。

Description

一种基于多个接口混合调用数据的方法及其系统
技术领域
本发明涉及数据调用技术,尤其涉及一种基于多个接口混合调用数据的方法及其系统。
背景技术
现有技术的数据调用多来实现全站接口调用,如单一的RESTFUL接口调用方案,或者单一的PRC调用方案。上述数据调用方案不能很好的从本地、远程混合使用为用户提供数据。
发明内容
本发明的目的在于,解决现有技术数据调用时存在的不足,并提供一种基于多个接口混合调用数据的方法及其系统。
为实现上述目的,一方面,本发明提供了一种基于多个接口混合调用数据的方法,该方法包括以下步骤:
用户根据具体的业务逻辑设置多种数据请求类型,所述数据请求类型包括本地数据请求、远程数据请求、Swoole同步接口请求和Swoole异步接口请求;当用户发起数据请求时,服务端根据设置好的多种数据请求类型分别获取相应地数据,并返回给用户。
优选地,当用户在发起数据请求时,如果没有预先设置数据请求类型,服务器将根据业务逻辑自动选择最优的数据调用类型;所述最优的数据调用类型依次为Swoole异步接口请求、本地数据请求、Swoole同步接口请求和远程数据请求。
优选地,当用户一次请求的数据需要多处数据源时,则通过混合多种数据请求类型的方式调用数据,以保证每次数据调用都是采用最优的数据请求类型。
优选地,所述本地数据调用和远程数据调用是通过MVC框架下服务层获取数据。
优选地,所述远程数据调用方式步骤包括:单个进程同时发送多个请求,收到回调数据后再对数据进行统一的处理,然后将处理后的数据发送给客户端并展现给用户。
另一方面,本发明提供了一种基于多个接口混合调用数据的系统,该系统包括客户端和服务端:
用户根据具体的业务逻辑通过客户端设置多种数据请求类型,所述数据请求类型包括本地数据请求、远程数据请求、Swoole同步接口请求和Swoole异步接口请求;当用户发起数据请求时,服务端根据设置好的多种数据请求类型获取相应地数据,并返回给用户。
本发明通过本地、远程、异步以及混合调用数据方式,可以保证每次接口调用都在使用最优的调用方式,以达到运行效率最大化。
附图说明
图1为本发明实施例提供的一种基于多个接口混合调用数据的方法流程示意图;
图2为图1所示方法的一种应用场景示意图;
图3为图1所示方法的另一种应用场景示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于对本发明实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。
图1为本发明实施例提供的一种基于多个接口混合调用数据的方法流程示意图。如图1所示,该方法包括步骤S101-步骤S102:
步骤S101,用户根据具体的业务逻辑设置多种数据请求类型,所述数据请求类型包括本地数据请求、远程数据请求、Swoole同步接口请求和Swoole异步接口请求。
具体地,本发明实施例可以同时支持本地数据请求、远程数据请求、Swoole同步接口请求和Swoole异步接口请求。
其中,本地数据请求为,基于MVC框架扩展的一种无远程请求,本地执行数据操作的方式。可以在原有MVC框架的结构中将Model层重新划分为Model和Service层;Service层用来处理业务逻辑,它可以与C层交互,或者作为数据接口直接为用户提供数据,Model层作为数据模型,主要用来进行数据预处理,数据验证等。用户通过调用Service获取服务提供的数据,并不直接使用Model获取数据。这样既可以把Service作为公用模块,也可以让应用层人员专于业务开发,极大提高开发效率。在多项目共用一个API(ApplicationProgramming Interface,应用程序编程接口)的情况下,如果只有当前项目独有的需求,就可以使用本地调用代替远程调用来为用户提供数据,来降低API服务器的并发压力,因为远程调用多为并发的。
远程数据请求为,基于Yar框架做的一种支持并行请求的RPC远程调用解决方案。当本项目调用其他项目的数据时,由其他项目提供接口供本项目调用获取数据。普通的远程调用,多为一个进程,一个请求,如果有多个请求则进行串行处理。本发明实施例使用回调的方式实现并行请求,单个进程可同时发起多个请求,收到回调后再对数据进行统一的处理,然后将处理后的数据发送回客户端展现给用户。
Swoole同步接口请求调用和Swoole异步接口请求调用,为用TCP或UDP协议实现的可异步操作的一种调用方式。接口调用中,有时候需要进行一些比较耗时却又不需要等待返回结果的操作,此时可以使用异步接口请求。通过做一个swoole客户端,并且在远程启动一个swoole服务端程序,swoole接收到用户请求后,直接返回给用户等待提示,同时发送消息到swoole服务端,让服务端处理请求。这样节省用户等待,充分利用机器资源。
步骤S102,当用户发起数据请求时,服务端根据设置好的多种数据请求类型分别获取相应地数据,并返回给用户。
在一个例子中,请求方式和响应方式为通过以下代码实现:
//多个接口混合调用
$this->service->call([
‘requestA’=>[‘Product/Service/List’,[param0,param1],’local],
‘requestB’=>[‘Product/Service/List’,[param0,param1],’remote’],
‘requestC’=>[‘Product/Service/List’,[param0,param1],’async],
])
如上代码所示,不同数据调用类型之间形成了统一的接口调用方式,而当所有请求返回的时候会统一返回到$this->service该类的回调方法中,该回调方法接收到结果后最终输出结果如下所示:
[
‘requestA’=>[‘r_code’=>xxx,’r_data’=>xx,’runtime’=>xx,’r_msg’=>xx],
‘requestB’=>[‘r_code’=>xxx,’r_data’=>xx,’runtime’=>xx,’r_msg’=>xx],
‘requestC’=>[‘r_code’=>xxx,’r_data’=>xx,’runtime’=>xx,’r_msg’=>xx],
]。
上述过程中本地数据调用与远程数据调用均通过service层获取数据,不同的是本地调用的service是直接在本项目中的,而远程调用是通过网络请求调取远程接口。假如要从一处数据源获取一份数据(如图2所示),用户只要根据具体的业务逻辑选择本地数据调用local,远程数据调用remote或者swoole异步的请求方式,即便以后业务逻辑有改动(比如现在上传图片,但是不在需要知道上传的进度)也不过是改动一下请求的类型,当然如果用户在请求的数据的时候没有指定获取数据的方式(local、remote、async),服务端将根据实际的业务按照,swoole异步>本地>swoole同步>远程,自动选择最优的调用方案去获取数据然后返回给用户。
当一次请求需要多处数据源的时候(如图3所示),可以进行混合调用,保证每次接口调用都是在用最优的调用方式,带到效率最大化。除了支持本地、远程、异步的混合调用,本发明实施例提供了统一的输入输出规范(上面代码),所以当需要新的调用方式的时候只需要按照此规范封装一个简单的方法,即可以实现。
本发明实施例提供的方法通过本地、远程、异步以及混合调用数据方式,可以保证每次接口调用都在使用最优的调用方式,以达到运行效率最大化。
相应地,本发明实施例提供了一种基于多个接口混合调用数据的系统,其特征在于,包括客户端和服务端:
用户根据具体的业务逻辑通过客户端设置多种数据请求类型,所述数据请求类型包括本地数据请求、远程数据请求、Swoole同步接口请求和Swoole异步接口请求;
当用户发起数据请求时,服务端根据设置好的多种数据请求类型获取相应地数据,并返回给用户。
本发明实施例提供的系统通过本地、远程、异步以及混合调用数据方式,可以保证每次接口调用都在使用最优的调用方式,以达到运行效率最大化。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于多个接口混合调用数据的方法,其特征在于,包括以下步骤:用户根据具体的业务逻辑设置多种数据请求类型,所述数据请求类型包括本地数据请求、远程数据请求、Swoole同步接口请求和Swoole异步接口请求;
当用户发起数据请求时,服务端根据设置好的多种数据请求类型分别获取相应地数据,并返回给用户。
2.根据权利要求1所述的方法,其特征在于,当用户在发起数据请求时,如果没有预先设置数据请求类型,服务器将根据业务逻辑自动选择最优的数据调用类型;所述最优的数据调用类型依次为Swoole异步接口请求、本地数据请求、Swoole同步接口请求和远程数据请。
3.根据权利要求1所述的方法,其特征在于,当用户一次请求的数据需要多处数据源时,则通过混合多种数据请求类型的方式调用数据,以保证每次数据调用都是采用最优的数据请求类型。
4.根据权利要求1所述的方法,其特征在于,所述本地数据调用和远程数据调用是通过MVC框架下服务层获取数据。
5.根据权利要求1所述的方法,其特征在于,所述远程数据调用方式步骤包括:单个进程同时发送多个请求,收到回调数据后再对数据进行统一的处理,然后将处理后的数据发送给客户端并展现给用户。
6.一种基于多个接口混合调用数据的系统,其特征在于,包括客户端和服务端:
用户根据具体的业务逻辑通过客户端设置多种数据请求类型,所述数据请求类型包括本地数据请求、远程数据请求、Swoole同步接口请求和Swoole异步接口请求;
当用户发起数据请求时,服务端根据设置好的多种数据请求类型获取相应地数据,并返回给用户。
7.根据权利要求6所述的系统,其特征在于,当用户在发起数据请求时,如果没有预先设置数据请求类型,服务器将根据业务逻辑自动选择最优的数据调用类型;所述最优的数据调用类型依次为Swoole异步接口请求、本地数据请求、Swoole同步接口请求和远程数据请求。
8.根据权利要求6所述的系统,其特征在于,当用户一次请求的数据需要多处数据源时,则通过混合多种数据请求类型的方式调用数据,以保证每次数据调用都是采用最优的数据请求类型。
9.根据权利要求6所述的系统,其特征在于,所述本地数据调用和远程数据调用是通过MVC框架下服务层获取数据。
10.根据权利要求6所述的系统,其特征在于,所述远程数据调用方式步骤包括:单个进程同时发送多个请求,收到回调数据后再对数据进行统一的处理,然后将处理后的数据发送给客户端并展现给用户。
CN201811288952.2A 2018-10-31 2018-10-31 一种基于多个接口混合调用数据的方法及其系统 Pending CN109446261A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811288952.2A CN109446261A (zh) 2018-10-31 2018-10-31 一种基于多个接口混合调用数据的方法及其系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811288952.2A CN109446261A (zh) 2018-10-31 2018-10-31 一种基于多个接口混合调用数据的方法及其系统

Publications (1)

Publication Number Publication Date
CN109446261A true CN109446261A (zh) 2019-03-08

Family

ID=65549882

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811288952.2A Pending CN109446261A (zh) 2018-10-31 2018-10-31 一种基于多个接口混合调用数据的方法及其系统

Country Status (1)

Country Link
CN (1) CN109446261A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110209689A (zh) * 2019-05-09 2019-09-06 上海车轮互联网服务有限公司 基于Swoole的ORM数据处理方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104866383A (zh) * 2015-05-29 2015-08-26 北京金山安全软件有限公司 一种接口调用方法、装置及终端
CN106412009A (zh) * 2016-08-29 2017-02-15 郑州悉知信息科技股份有限公司 接口调用方法及装置
US20180074797A1 (en) * 2016-09-09 2018-03-15 Hewlett Packard Enterprise Development Lp Transform a data object in a meta model based on a generic type

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104866383A (zh) * 2015-05-29 2015-08-26 北京金山安全软件有限公司 一种接口调用方法、装置及终端
CN106412009A (zh) * 2016-08-29 2017-02-15 郑州悉知信息科技股份有限公司 接口调用方法及装置
US20180074797A1 (en) * 2016-09-09 2018-03-15 Hewlett Packard Enterprise Development Lp Transform a data object in a meta model based on a generic type

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110209689A (zh) * 2019-05-09 2019-09-06 上海车轮互联网服务有限公司 基于Swoole的ORM数据处理方法及装置

Similar Documents

Publication Publication Date Title
CN109889551A (zh) 一种智能硬件接入的物联网云平台的方法
CN102937911B (zh) 虚拟机资源的管理方法及系统
CN106850788A (zh) 面向多源异构地理信息资源的集成框架及集成方法
CN105763619B (zh) 客户端与服务端进行通讯的方法及装置
CN105721473A (zh) 一种web端远程调用优化的方法及系统
CN102595208A (zh) 云端控制网络化视频图像处理流媒体服务系统及方法
CN110879769A (zh) 一种基于动态可配置框架的嵌入式系统测试环境构建方法
CN104081355B (zh) 软件总线
CN106713684B (zh) 统一通信客户端账号与话机的号码的绑定方法及设备
CN106412009A (zh) 接口调用方法及装置
CN110008019B (zh) 共享服务器资源的方法及装置、系统
CN1976322A (zh) 一种实现多媒体即时通讯的方法、系统和控制流程
CN105959302A (zh) 一种终端管理框架及方法
CN106846115A (zh) 用于数字视听场所线下资源自助预订的方法、系统以及数字娱乐点播系统
CN103248654B (zh) 虚拟桌面服务参数的协商方法、装置及系统
CN101155174B (zh) 基于共用协议的远程用户界面服务实现方法
CN109446261A (zh) 一种基于多个接口混合调用数据的方法及其系统
CN102968807B (zh) 图像自动生成方法和系统
CN102271095A (zh) 一种基于社区平台的批量处理传输方法及即时通讯服务器
CN108494606B (zh) 一种基于wcf技术的数据服务框架搭建方法
CN113242313B (zh) 数据同步方法、系统、装置、服务器及存储介质
CN102244618A (zh) 一种基于社区平台的批量处理方法及即时通讯服务器
CN101582957A (zh) 一种修订计费话单的系统和方法
CN110958240A (zh) 消息订阅系统及方法
CN102130852A (zh) 一种社区平台的批量处理传输方法及即时通讯服务器

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190308