CN108874557B - 一种前端接口处理方法及系统 - Google Patents
一种前端接口处理方法及系统 Download PDFInfo
- Publication number
- CN108874557B CN108874557B CN201810509414.5A CN201810509414A CN108874557B CN 108874557 B CN108874557 B CN 108874557B CN 201810509414 A CN201810509414 A CN 201810509414A CN 108874557 B CN108874557 B CN 108874557B
- Authority
- CN
- China
- Prior art keywords
- interface
- callback
- calling
- processor
- layer
- 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
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- 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/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/541—Client-server
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)
- Stored Programmes (AREA)
Abstract
本公开提供一种前端接口处理方法及系统,设计一种前端接口处理系统,包括一种前端接口处理器用以统一调用接口,通过配合Model层以及Service层来实现多接口一调用一回调,再根据异步回调处理使接口处理器可以无限调用且能适应任意情况下的变动,实现了多个接口一个调用,避免了代码冗余;所有参数均采用对象传参的方式,开发者无需再关注参数的顺序,因此,开发者只需将精力放在业务逻辑上即可。同时,由于该接口处理器只是在Service层与Model层做适配处理,在Controller层或其他需要调用的地方进行调用,因此可以在任意项目、任意系统中使用,极大地方便了开发者。
Description
技术领域
本公开涉及网络接口通信领域,特别涉及一种前端接口处理方法及系统。
背景技术
在当前的web环境中,前端、后端之间的通信通常是以接口的形式进行。每进行一个操作都需要前端发起Ajax请求,调用后端提供的接口,传递后端操作所需的参数,然后在相应的回调函数中执行相应操作,由此可知,前端、后端之间的接口通信会非常频繁。接口通信的调用、接口一般用于层间协作,上层将本层函数安装在下层,这个函数就是回调,而下层在一定条件下触发回调。例如作为一个驱动,是一个底层,他在收到一个数据时,除了完成本层的处理工作外,还将进行回调,将这个数据交给上层的应用层来做进一步处理,这在分层的数据通信中很普遍。
在现有的接口通信中,一般都是一个接口一个调用一个回调,主要的流程如下:在Service层定义好调用的接口,GET请求参数通常是单个按顺序传入,POST请求参数通常是以对象的形式传入;前端发起Ajax请求,调用指定的后端接口,传递参数,一个请求对应一个接口一个调用一个回调,在成功回调中执行操作,在失败回调中反馈异常信息。一个接口一个调用一个回调的结构,不具备通用性,存在代码冗余,前端、后端通信越频繁,冗余越多;GET请求中参数是单个按顺序传入的,在实际开发中,一个接口可能会有10几个甚至达到20个以上的参数,这个时候要记录参数的顺序是比较困难的,因此,当接口参数过多时在核对参数上将会耗费更多的时间,降低了开发效率。
发明内容
本公开的目的是针对现有技术的不足,提供一种前端接口处理方法及系统,基于上述的问题,设计一种前端接口处理系统,包括一种前端接口处理器用以统一调用接口,实现多接口一个调用一个回调,所有参数均采用对象传参的方式,开发者无需再关注参数的顺序,因此,开发者只需将精力放在业务逻辑上即可。同时,由于该接口处理器只是在Service层与Model层做适配处理,在Controller层或其他需要调用的地方进行调用,因此可以在任意项目、任意系统中使用,所述一种前端接口处理方法具体包括以下步骤:
步骤1,在Service层中的接口使用对象传参;
步骤2,接口处理器调用Model层中传过来的接口回调函数,并传递接口需要的参数,在接口响应完成后执行相应回调;
步骤3,回调函数中根据具体情况选择是否需要继续请求其他接口,如果请求其他接口,则再次调用接口处理器并传递对应接口的Model层数据。
进一步地,在步骤1中,所述对象传参为传递过去的是对象的引用,即地址,当对象中的数值改变后,不影响这个对象的地址,即对象地址没有变,始终能够找到修改后的数值,对象的引用指向同一块地址空间。
本公开还提供了一种前端接口处理系统,所述接口系统包括:接口处理器、Service层、Model层、服务器;
进一步地,所述接口处理器包括接口调用模块和异步回调模块,接口调用模块和异步回调模块通过Model层传递的接口进行通信。
进一步地,接口调用模块根据Model层传递的接口信息来调用Service层相应的接口。
进一步地,异步回调模块用于调用Model层传递的异步回调函数并处理接口响应以后的操作。
进一步地,所述接口处理器可接受一个额外的对象参数,用于在接口响应的回调函数中通过对象参数进行兼容处理,以保证接口处理器能适应所有情况。
进一步地,所述Model层包括各接口的接口处理器所需要的数据、接口处理器需要调用的接口回调函数、调用接口需要的参数对象、异步回调后需要执行的回调函数。
进一步地,所述接口调用模块依赖于Model层传递的接口信息,所述接口信息包括接口处理器需要调用的Service层的接口回调函数、调用接口需要的参数对象、异步回调后需要执行的回调函数。
进一步地,所述Service层包括至少一个接口。
本公开的有益效果为:本公开提供的一种前端接口处理系统,通过配合Model层以及Service层来实现多接口一调用一回调,再根据异步回调处理使接口处理器可以无限调用且能适应任意情况下的变动,实现了多个接口一个调用,避免了代码冗余;无论何种方式的接口调用都无需再关心参数的顺序;Service层与Model层进行适配,Controller层调用只需一句代码,极大地方便了开发者。
附图说明
通过对结合附图所示出的实施方式进行详细说明,本公开的上述以及其他特征将更加明显,本公开附图中相同的参考标号表示相同或相似的元素,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,在附图中:
图1所示为传统的端接口处理系统;
图2所示为一种前端接口处理系统模块架构图。
具体实施方式
以下将结合实施例和附图对本公开的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本公开的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
如图1所示为传统的端接口处理系统,图2所示为一种前端接口处理系统模块架构图,下面结合图1与图2来阐述根据本公开的一种前端接口处理方法。
如图1所示,在现有的接口通信中,一般都是一个接口一个调用一个回调,主要的流程如下:在Service层定义好调用的接口,GET请求参数通常是单个按顺序传入,POST请求参数通常是以对象的形式传入;前端发起Ajax请求,调用指定的后端接口,传递参数,一个请求对应一个接口一个调用一个回调,在成功回调中执行操作,在失败回调中反馈异常信息。一个接口一个调用一个回调的结构,不具备通用性,存在代码冗余,前端、后端通信越频繁,冗余越多;GET请求中参数是单个按顺序传入的,在实际开发中,一个接口可能会有10几个甚至达到20个以上的参数,这个时候要记录参数的顺序是比较困难的,因此,当接口参数过多时在核对参数上将会耗费更多的时间,降低了开发效率。
在现有的接口通信中,一般都是一接口一调用一回调。
在现有的接口通信一接口一调用一回调主要的流程如下:
1.在Service层定义好调用的接口,GET请求参数通常是单个按顺序传入,POST请求参数通常是以对象的形式传入;
2.前端发起Ajax请求,调用指定的后端接口,传递参数,一个请求对应一个接口一个调用一个回调;
3.在成功回调中执行操作,在失败回调中反馈异常信息。
本公开提出一种前端接口处理方法,具体包括以下步骤:
步骤1,在Service层中的接口使用对象传参;
步骤2,接口处理器调用Model层中传过来的接口回调函数,并传递接口需要的参数,在接口响应完成后执行相应回调;
步骤3,回调函数中根据具体情况选择是否需要继续请求其他接口,如果请求其他接口,则再次调用接口处理器并传递对应接口的Model层数据。
接口回调的流程是:
1)定义接口:定义一个接口、定义其中的抽象方法、抽象方法含有参数(被传递的数据),在需要传递数据的一端定义一个接口,接口里面些需要监听的方法以及参数。
其主要代码如下:
2)编写回调方法:在定义接口的类中,编写用户回调的方法,要传递一个接口对象实例,让别的类去实现。(相当于为接口成员变量赋值),定义一个的接口类型的变量存储数据;
其主要代码如下:
3)为抽象方法赋值:获取一个全局的接口成员变量,在某个事件中使用接口成员变量调用接口中的方法,并且为抽象方法中的参数赋值。(这一步可以在回调方法中实现),创建一个公共的方法,让外部调用,并且传递接口类型的参数,给其定义的接口类型的数据初始化。在另一个页面,在合适的时机,创建此类的实例,调用类中的回调方法,为接口对象赋值this,即可实现回调。
进一步地,在步骤1中,所述对象传参为传递过去的是对象的引用,即地址,当对象中的数值改变后,不影响这个对象的地址,即对象地址没有变,始终能够找到修改后的数值,对象的引用指向同一块地址空间。
本公开还提供了一种前端接口处理系统,如图2所示,所述接口系统包括:接口处理器、Service层、Model层、服务器;
进一步地,所述接口处理器包括接口调用模块和异步回调模块,接口调用模块和异步回调模块通过Model层传递的接口进行通信。
进一步地,接口调用模块根据Model层传递的接口信息来调用Service层相应的接口。
进一步地,异步回调模块用于调用Model层传递的异步回调函数并处理接口响应以后的操作。
进一步地,所述接口处理器可接受一个额外的对象参数,用于在接口响应的回调函数中通过对象参数进行兼容处理,以保证接口处理器能适应所有情况。
进一步地,所述Model层包括各接口的接口处理器所需要的数据、接口处理器需要调用的接口回调函数、调用接口需要的参数对象、异步回调后需要执行的回调函数。
进一步地,所述接口调用模块依赖于Model层传递的接口信息,所述接口信息包括接口处理器需要调用的Service层的接口回调函数、调用接口需要的参数对象、异步回调后需要执行的回调函数。
进一步地,所述Service层包括至少一个接口。
所述一种前端接口处理系统可以运行于桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备中。所述一种前端接口处理系统可运行的系统可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述例子仅仅是一种前端接口处理系统的示例,并不构成对一种前端接口处理系统的限定,可以包括比例子更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述一种前端接口处理系统还可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述一种前端接口处理系统运行系统的控制中心,利用各种接口和线路连接整个一种前端接口处理系统可运行系统的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述一种前端接口处理系统的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
其中,所涉及的技术和术语包括:
Ajax—Asynchronous Javascript And XML异步Javascript和XML;
GET—http与服务器交互的方法,一般用来获取/查询资源信息;
POST—http与服务器交互的方法,一般用来更新资源信息;
Service—服务,这里特指接口服务;
Model—模型;
Controller—控制器;
回调函数—函数的指针地址作为参数传递到另一个函数里,当这个指针被用来调用其指向的函数时,称为回调函数。回调函数不是由函数的实现方直接调用,而是在特定的事件或条件下,由另外的一方进行调用,用于对该事件或条件进行响应。
异步回调—非阻塞式执行程序,程序执行完成后告知执行方。接口的回调即为异步回调,一种类似消息或事件的机制,不过它的调用方向刚好相反,接口的服务在收到某种讯息或发生某种事件时,会主动通知客户方(即调用客户方的接口)。
同步调用:一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用。
回调:一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口。
回调和异步调用的关系非常紧密:使用回调来实现异步消息的注册,通过异步调用来实现消息的通知。
Service层:Service层主要负责业务模块的逻辑应用设计。同样是首先设计接口,再设计其实现的类,接着再Spring的配置文件中配置其实现的关联。这样我们就可以在应用中调用Service接口来进行业务处理。Service层的业务实现,封装Service层的业务逻辑有利于通用的业务逻辑的独立性和重复利用性,程序显得非常简洁。
Controller层:Controller层负责具体的业务模块流程的控制,在此层里面要调用Serice层的接口来控制业务流程,控制的配置也同样是在Spring的配置文件里面进行,针对具体的业务流程,会有不同的控制器,我们具体的设计过程中可以将流程进行抽象归纳,设计出可以重复利用的子单元流程模块,这样不仅使程序结构变得清晰,也大大减少了代码量。
View层:View层与控制层结合比较紧密,需要二者结合起来协同工发。View层主要负责前端页面的表示。
尽管本公开的描述已经相当详尽且特别对几个所述实施例进行了描述,但其并非旨在局限于任何这些细节或实施例或任何特殊实施例,而是应当将其视作是通过参考所附权利要求考虑到现有技术为这些权利要求提供广义的可能性解释,从而有效地涵盖本公开的预定范围。此外,上文以发明人可预见的实施例对本公开进行描述,其目的是为了提供有用的描述,而那些目前尚未预见的对本公开的非实质性改动仍可代表本公开的等效改动。
Claims (7)
1.一种前端接口处理方法,其特征在于,所述方法包括:
步骤1,在Service层中的接口使用对象传参;
步骤2,接口处理器调用Model层中传过来的接口回调函数,并传递接口需要的参数,在接口响应完成后执行相应回调;
步骤3,回调函数中根据具体情况选择是否需要继续请求其他接口,如果请求其他接口,则再次调用接口处理器并传递对应接口的Model层数据;
所述接口处理器包括接口调用模块和异步回调模块,所述接口调用模块和异步回调模块通过Model层传递的接口进行通信,其中,所述接口调用模块用于根据Model层传递的接口信息来调用Service层相应的接口,所述异步回调模块用于调用Model层传递的异步回调函数并处理接口响应以后的操作。
2.根据权利要求1所述的一种前端接口处理方法,其特征在于,在步骤1中,所述对象传参为传递过去的是对象的引用,即地址,当对象中的数值改变后,不影响这个对象的地址,即对象地址没有变,始终能够找到修改后的数值,对象的引用指向同一块地址空间。
3.一种前端接口处理系统,所述系统包括:接口处理器、Service层、Model层、服务器;所述接口处理器包括接口调用模块和异步回调模块,所述接口调用模块和异步回调模块通过Model层传递的接口进行通信,其中,所述接口调用模块用于根据Model层传递的接口信息来调用Service层相应的接口,所述异步回调模块用于调用Model层传递的异步回调函数并处理接口响应以后的操作。
4.根据权利要求3所述的一种前端接口处理系统,其特征在于,所述接口处理器可接受一个额外的对象参数,用于在接口响应的回调函数中通过对象参数进行兼容处理,以保证接口处理器能适应所有情况。
5.根据权利要求3所述的一种前端接口处理系统,其特征在于,所述Model层包括各接口的接口处理器所需要的数据、接口处理器需要调用的接口回调函数、调用接口需要的参数对象、异步回调后需要执行的回调函数。
6.根据权利要求3所述的一种前端接口处理系统,其特征在于,所述接口调用模块依赖于Model层传递的接口信息,所述接口信息包括接口处理器需要调用的Service层的接口回调函数、调用接口需要的参数对象、异步回调后需要执行的回调函数。
7.根据权利要求3所述的一种前端接口处理系统,其特征在于,所述Service层包括至少一个接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810509414.5A CN108874557B (zh) | 2018-05-24 | 2018-05-24 | 一种前端接口处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810509414.5A CN108874557B (zh) | 2018-05-24 | 2018-05-24 | 一种前端接口处理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108874557A CN108874557A (zh) | 2018-11-23 |
CN108874557B true CN108874557B (zh) | 2022-03-22 |
Family
ID=64334318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810509414.5A Active CN108874557B (zh) | 2018-05-24 | 2018-05-24 | 一种前端接口处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108874557B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112395098B (zh) * | 2019-08-19 | 2024-03-15 | 网易(杭州)网络有限公司 | 应用程序接口调用方法、装置、存储介质和电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106371900A (zh) * | 2015-07-23 | 2017-02-01 | 腾讯科技(深圳)有限公司 | 一种实现异步调用的数据处理方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6631425B1 (en) * | 1997-10-28 | 2003-10-07 | Microsoft Corporation | Just-in-time activation and as-soon-as-possible deactivation or server application components |
US20030101291A1 (en) * | 2001-11-23 | 2003-05-29 | Mussack Christopher Joseph | Application programming interface for provision of DICOM services |
US7023979B1 (en) * | 2002-03-07 | 2006-04-04 | Wai Wu | Telephony control system with intelligent call routing |
US9134923B2 (en) * | 2010-08-27 | 2015-09-15 | Fxi Technologies As | Electronics device |
CN104866383B (zh) * | 2015-05-29 | 2018-11-23 | 北京金山安全软件有限公司 | 一种接口调用方法、装置及终端 |
CN106657235A (zh) * | 2016-10-09 | 2017-05-10 | 广东睿江云计算股份有限公司 | 一种利用http接口控制设备的实现方法及系统 |
-
2018
- 2018-05-24 CN CN201810509414.5A patent/CN108874557B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106371900A (zh) * | 2015-07-23 | 2017-02-01 | 腾讯科技(深圳)有限公司 | 一种实现异步调用的数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108874557A (zh) | 2018-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108449410B (zh) | 一种云平台中消息管理方法、系统及相关装置 | |
US9852220B1 (en) | Distributed workflow management system | |
CN109800083B (zh) | 一种微服务协同调用的方法、装置、系统及存储介质 | |
US10303529B2 (en) | Protocol for communication of data structures | |
US20130086154A1 (en) | System and method for providing asynchrony in web services | |
CN110413822B (zh) | 离线图像结构化分析方法、装置、系统和存储介质 | |
CN114595186B (zh) | 一种多核处理器的核间通信方法、通信装置 | |
US8280197B1 (en) | Managed background loading of image resources in resource-constrained devices | |
CN103516595A (zh) | 一种消息提醒的方法和装置、以及系统 | |
US10986066B2 (en) | Systems, apparatuses, methods, and non-transitory computer readable media for efficient call processing | |
CN108900627B (zh) | 一种网络请求方法、终端装置及存储介质 | |
US20120210306A1 (en) | System and Method for Application Testing | |
CN108874557B (zh) | 一种前端接口处理方法及系统 | |
CN111294377B (zh) | 一种依赖关系的网络请求发送方法、终端装置及存储介质 | |
CN108664343B (zh) | 一种微服务的有状态调用方法及装置 | |
CN109343970B (zh) | 基于应用程序的操作方法、装置、电子设备及计算机介质 | |
CN116107778B (zh) | 前端事件应答实现方法、装置、终端设备和可读存储介质 | |
CN106095886B (zh) | 一种数据处理方法及其装置 | |
CN107391274A (zh) | 离线消息的处理方法及装置 | |
CN110609680A (zh) | 基于Spring拦截器的参数传递方法、装置、存储介质及设备 | |
CN111274047A (zh) | 信息处理方法、终端、系统、计算机设备和存储介质 | |
CN113779122B (zh) | 导出数据的方法和装置 | |
JP2017062540A (ja) | 片方向オペレーティングシステム間通信システム及びプログラム | |
CN111158920B (zh) | 一种移动系统的进程数据读写优化方法及系统 | |
JP7427775B2 (ja) | ストアドプロシージャの実行方法、装置、データベースシステム及び記憶媒体 |
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 |