CN117555625A - 应用程序接口调用方法、装置、应用程序接口配置系统 - Google Patents
应用程序接口调用方法、装置、应用程序接口配置系统 Download PDFInfo
- Publication number
- CN117555625A CN117555625A CN202311568615.XA CN202311568615A CN117555625A CN 117555625 A CN117555625 A CN 117555625A CN 202311568615 A CN202311568615 A CN 202311568615A CN 117555625 A CN117555625 A CN 117555625A
- Authority
- CN
- China
- Prior art keywords
- application program
- program interface
- data
- service
- simulation
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000004088 simulation Methods 0.000 claims abstract description 112
- 238000011161 development Methods 0.000 claims abstract description 42
- 238000012544 monitoring process Methods 0.000 claims abstract description 10
- 230000004044 response Effects 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 12
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 8
- 239000003795 chemical substances by application Substances 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004806 packaging method and process Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000002311 subsequent effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本公开涉及计算机技术领域,尤其涉及应用程序接口调用方法、装置、应用程序接口配置系统。具体实现方案为:监听客户端发送的应用程序接口调用请求;根据被调用应用程序接口的地址确定调用服务;调用服务包括数据代理服务和数据模拟服务;响应于调用服务为数据代理服务,通过被调用应用程序接口向客户端返回真实数据;响应于调用服务为数据模拟服务,通过数据模拟服务向客户端返回模拟数据。本公开整合了Proxy代理和数据Mock服务,可以实现快速切换代理服务器或Mock数据,提升了开发效率;并且Mock数据可以复用,通过该方案也不会引发代码冲突,用户可以自行配置所需的Mock数据。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及应用程序接口调用方法、装置、应用程序接口配置系统。
背景技术
互联网项目开发中通常需要模拟后端接口数据,模拟后端接口数据一般有三种情形:第一种是后端API(Application Programming Interface,应用程序接口)服务均已存在,这时一般通过Proxy代理,将要请求的API接口代理到目标服务地址;第二种是后端API服务仍在开发中,还不能为前端提供服务,这时需要前端进行数据Mock;第三种就是混合场景,一部分后端API服务已可用,另一部分还在开发中,这时需要Proxy+Mock的混合模式来满足前端调用接口的需求。其中,Mock数据是指用于模拟真实数据以测试软件功能的一种数据类型。Mock数据是假数据,与真实数据并不相同,但与真实数据有一定的相似程度。
现有技术中前端开发工程师需要自行去整合Proxy服务和Mock服务到项目中,比如通过打包工具webpack进行数据代理Proxy,通过Mock.js进行数据Mock;在开发中多个项目无法复用Mock相关配置,而且由于Mock配置都在代码中,多人协作中可能会造成代码冲突;同时,Proxy服务和Mock服务的切换应用场景需要改写代码,非常耗时。
发明内容
本公开提供了一种应用程序接口调用方法、装置、应用程序接口配置系统、电子设备、存储介质。
根据本公开的一方面,提供了一种应用程序接口调用方法,包括:
监听客户端发送的应用程序接口调用请求;其中,所述应用程序接口调用请求包含被调用应用程序接口的地址;
根据所述被调用应用程序接口的地址确定调用服务;所述调用服务包括数据代理服务和数据模拟服务;
响应于所述调用服务为所述数据代理服务,通过所述被调用应用程序接口向所述客户端返回真实数据;
响应于所述调用服务为所述数据模拟服务,通过所述数据模拟服务向所述客户端返回模拟数据。。
根据本公开的另一方面,提供了一种应用程序接口调用方法,包括:
向服务器发送应用程序接口调用请求;其中,所述应用程序接口调用请求包含被调用应用程序接口的地址;用于提供给所述服务器根据所述被调用应用程序接口的地址确定调用服务;所述调用服务包括数据代理服务和数据模拟服务;
接收所述服务器通过所述被调用应用程序接口向客户端返回的真实数据;或者接收所述服务器通过所述数据模拟服务向所述客户端返回的模拟数据。
根据本公开的第三方面,提供了一种应用程序接口调用装置,包括:
监听模块,被配置为监听客户端发送的应用程序接口调用请求;其中,所述应用程序接口调用请求包含被调用应用程序接口的地址;
调用模块,被配置为根据所述被调用应用程序接口的地址确定调用服务;所述调用服务包括数据代理服务和数据模拟服务;
数据代理模块,被配置为响应于所述调用服务为所述数据代理服务,通过所述被调用应用程序接口向所述客户端返回真实数据;
数据模拟模块,被配置为响应于所述调用服务为所述数据模拟服务,通过所述数据模拟服务向所述客户端返回模拟数据。
根据本公开的第四方面,提供了一种应用程序接口调用装置,包括:
请求模块,被配置为向服务器发送应用程序接口调用请求;其中,所述应用程序接口调用请求包含被调用应用程序接口的地址;用于提供给所述服务器根据所述被调用应用程序接口的地址确定调用服务;所述调用服务包括数据代理服务和数据模拟服务;
接收模块,被配置为接收所述服务器通过所述被调用应用程序接口向客户端返回的真实数据;或者接收所述服务器通过所述数据模拟服务向所述客户端返回的模拟数据。
根据本公开的第五方面,提供了一种应用程序接口配置系统,应用于上述技术方案中任意一项所述的应用程序接口调用方法,用于在执行所述应用程序接口调用方法之前,配置所述数据代理服务和所述数据模拟服务的相关组件,包括:
图形化配置界面,用于配置各个组件;
数据代理模块,所述数据代理模块包括至少一个数据代理组件、至少一个第一接口配置组件,所述数据代理组件连接对应的所述第一接口配置组件;
数据模拟模块,所述数据模拟模块包括至少一个数据模拟组件、至少一个第二接口配置组件,所述数据模拟组件连接对应的所述第二接口配置组件。
根据本公开的第六方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述技术方案中任一项所述的方法。
根据本公开的第七方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据上述技术方案中任一项所述的方法。
根据本公开的第八方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据上述技术方案中任一项所述的方法。
本公开可以实现快速切换代理服务器或Mock数据,提升了开发效率;并且Mock数据可以复用,通过该方案也不会引发代码冲突,用户可以自行配置所需的Mock数据。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是本公开实施例中用于服务器的应用程序接口调用方法的步骤示意图;
图2是本公开实施例中应用程序接口调用方法的流程示意图;
图3是本公开实施例中的用于Mock配置的图形化配置界面图;
图4是本公开实施例中用于客户端的应用程序接口调用方法的步骤示意图;
图5是本公开实施例中用于服务器的应用程序接口调用装置的原理框图;
图6是本公开实施例中用于客户端的应用程序接口调用装置的原理框图;
图7是本公开实施例中的API Request组件配置界面图;
图8是本公开实施例中的开关组件配置界面图;
图9是本公开实施例中的Proxy配置界面图;
图10是本公开实施例中的Mock配置界面图;
图11是用来实现本公开实施例的应用程序接口调用方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
术语解释:
Mock数据:是指用于模拟真实数据以测试软件功能的一种数据类型。Mock数据是假数据,与真实数据并不相同,但与真实数据有一定的相似程度。Mock数据可以用于模拟各种数据类型,如数字、字符串、日期、布尔值、数组等。
Proxy代理:也称网络代理,是一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。一般认为代理服务有利于保障网络终端的隐私或安全,防止攻击。
现有的大部分Mock方案存在很多问题:
Proxy代理和数据Mock服务缺少统一的方案,前端开发工程师需要自行去整合Proxy和Mock服务到项目中,比如通过打包工具webpack进行数据代理Proxy,通过Mock.js进行数据Mock。现有方案均没有提供一套完备的Proxy+Mock方案,而且各个方案也都存在很多缺点,配置也都比较复杂,不易用。例如采用打包工具WebPack、Vite提供的Proxy服务缺点:只提供了Proxy服务,没有提供Mock服务的问题;配置存放在代码中,多人配置容易冲突;配置复杂,有学习成本;切换代理服务地址必须重启项目。采用Mock.js的缺点:只提供了Mock服务,没有提供Proxy服务;配置存放在代码中,多人配置容易冲突需要编写代码,学习成本高;拦截掉了网络请求,开发者不能在浏览器的network中看到发出的请求信息,不方便判断请求发出是否有问题;只能Mock成功或失败一种场景,不能Mock多种场景。采用YAPI(API管理平台)的缺点:只提供了Mock服务,不提供Proxy服务;不能在一个管理页面去统一管理(启用/停止)各个API接口,启动、停止不方便;只能Mock成功或失败一种场景,不能Mock多种场景。
针对现有技术中Proxy代理和数据Mock服务缺少整合方案的问题,本公开提供了一种应用程序接口调用方法,整合了Proxy代理和数据Mock服务,如图1所示,包括:
步骤S101,监听客户端发送的应用程序接口调用请求;其中,应用程序接口调用请求包含被调用应用程序接口的地址。
步骤S102,根据被调用应用程序接口的地址确定调用服务;调用服务包括数据代理服务和数据模拟服务。
步骤S103,响应于调用服务为数据代理服务,通过被调用应用程序接口向客户端返回真实数据;其中,真实数据是指被调用API真实运行产生的数据。
步骤S104,响应于调用服务为数据模拟服务,通过数据模拟服务向客户端返回模拟数据。其中,模拟数据是指模拟被调用API运行产生的数据。
具体地,如图2所示,可以预先对Proxy代理服务和数据Mock服务进行配置,并将Proxy代理服务和数据Mock服务对应的API request配置(API请求配置)以JSON格式存储。在数据Mock服务运行过程,监听客户端发送的请求,根据请求中的被调用应用程序接口的地址(API地址)确定请求所需的调用服务,是需要使用Proxy代理服务(数据代理服务)还是数据Mock服务(数据模拟服务),再通过对应的服务向客户端返回数据。本公开通过上述方案整合了Proxy代理服务和数据Mock服务,可以实现快速切换代理服务器或Mock数据,提升了开发效率。
作为可选的实施方式,步骤S102,根据被调用应用程序接口的地址确定调用服务包括:
根据被调用应用程序接口的地址确定被调用应用程序接口的开发状态;
响应于被调用应用程序接口的开发状态为已完成开发,确定调用服务为数据代理服务;
响应于被调用应用程序接口的开发状态为未完成开发,确定调用服务为数据模拟服务。
具体地,根据被调用API的地址判断被调用API是否开发完成,如果被调用API已完成开发,可以使用Proxy代理服务,则通过Proxy代理服务调用该API,向客户端返回对应的真实数据。如果被调用API尚未完成开发,则通过数据模拟服务模拟被调用API运行,向客户端返回模拟运行产生的模拟数据。
作为可选的实施方式,步骤S103,响应于调用服务为所述数据代理服务,通过被调用应用程序接口向客户端返回真实数据包括:
根据被调用应用程序接口的地址,将应用程序接口调用请求转发到对应的被调用应用程序接口;
将被调用应用程序接口根据应用程序接口调用请求生成的真实数据返回给客户端。
步骤S104,响应于调用服务为数据模拟服务,通过数据模拟服务向客户端返回模拟数据包括:
数据模拟服务根据应用程序接口调用请求模拟被调用应用程序接口运行,生成对应的模拟数据;将模拟数据返回给客户端。
如图2所示,Mock服务运行过程如下:Node服务(服务器)监听客户端发来的请求,根据请求中的API地址,判断是使用Proxy代理服务还是数据Mock服务,如果使用Proxy代理服务,则将客户端的请求转发到相应的后端服务(即被请求调用的API),并将后端服务返回的真实数据,返回给用户请求;如果使用数据Mock服务,则根据Mock配置直接将模拟数据返回给客户端。
作为可选的实施方式,步骤S102,根据被调用应用程序接口的地址确定调用服务之前,还包括:
根据被调用应用程序接口的地址,匹配对应的应用程序接口配置;
根据应用程序接口配置确定调用服务。
具体地,如图2所示,服务器监听客户端发来的API调用请求,根据请求的API地址,匹配相应的API Request配置,Proxy代理服务和数据Mock服务都设有对应的API Request组件,根据匹配到的API Request配置,就可以确定该请求需要使用Proxy代理服务还是数据Mock服务。
作为可选的实施方式,根据被调用应用程序接口的地址,匹配对应的应用程序接口配置包括:
响应于匹配到多个应用程序接口配置,根据预设规则确定多个应用程序接口配置的优先级。其中,预设规则包括:通过精准配置匹配到的应用程序接口配置的优先级大于通过正则配置匹配到的应用程序接口配置;和/或应用程序接口配置的优先级与应用程序接口配置的长度成正比。
服务器监听客户端发来的API调用请求,根据请求的API地址,匹配相应的APIRequest配置,如果匹配到多条API Request配置,则需要确定优先级最高的API Request配置。正则配置是指通过记录文本规则的代码,用来匹配或查找符合某些规则的字符串数据,正则匹配属于比较模糊的匹配,可能匹配到多条配置,如果精准配置到的是某一条特定的API Request配置,则精准配置到的API Request配置的优先级较高。另一种匹配规则是,配置越长优先级越高。
作为可选的实施方式,步骤S101,监听客户端发送的应用程序接口调用请求之前,如图2所示,还包括:
通过图形化配置界面,对数据代理服务和数据模拟服务进行配置;
调用图形化配置接口存储数据代理服务和数据模拟服务的相关配置。
具体地,如图3所示,Mock配置过程如下:用户通过图形化配置Web界面,拖拽相应的组件并连线,在配置完成后,点击“保存”,调用图形化配置接口,将配置保存为JSON格式存储下来。
本公开还提供了一种应用程序接口调用方法,如图4所示,包括:
步骤S401,向服务器发送应用程序接口调用请求;其中,应用程序接口调用请求包含被调用应用程序接口的地址;用于提供给服务器根据被调用应用程序接口的地址确定调用服务;调用服务包括数据代理服务和数据模拟服务;
步骤S402,接收服务器通过被调用应用程序接口向客户端返回的真实数据;或者接收服务器通过所述数据模拟服务向客户端返回的模拟数据。
具体地,本实施例中的方法可以应用于客户端。如图2所示,可以预先对Proxy代理服务和数据Mock服务进行配置,并将Proxy代理服务和数据Mock服务对应的API request配置(API请求配置)以JSON格式存储。在数据Mock服务运行过程,客户端可以向服务器发送API调用请求,监听客户端发送的API调用请求,根据请求中的被调用应用程序接口的地址(API地址)确定请求所需的调用服务,是需要使用Proxy代理服务(数据代理服务)还是数据Mock服务(数据模拟服务),再通过对应的服务向客户端返回数据。本公开通过上述方案整合了Proxy代理服务和数据Mock服务,可以实现快速切换代理服务器或Mock数据,提升了开发效率。
本公开提供了一种应用程序接口调用装置500,如图5所示,包括:
监听模块501,被配置为监听客户端发送的应用程序接口调用请求;其中,应用程序接口调用请求包含被调用应用程序接口的地址;
调用模块502,被配置为根据被调用应用程序接口的地址确定调用服务;调用服务包括数据代理服务和数据模拟服务;
数据代理模块503,被配置为响应于调用服务为数据代理服务,通过被调用应用程序接口向客户端返回真实数据;
数据模拟模块504,被配置为响应于调用服务为数据模拟服务,通过数据模拟服务向客户端返回模拟数据。
具体地,如图2所示,可以预先对Proxy代理服务和数据Mock服务进行配置,并将Proxy代理服务和数据Mock服务对应的API request配置(API请求配置)以JSON格式存储。在数据Mock服务运行过程,监听客户端发送的请求,根据请求中的被调用应用程序接口的地址(API地址)确定请求所需的调用服务,是需要使用Proxy代理服务(数据代理服务)还是数据Mock服务(数据模拟服务),再通过对应的服务向客户端返回数据。本公开通过上述方案整合了Proxy代理服务和数据Mock服务,可以实现快速切换代理服务器或Mock数据,提升了开发效率。
作为可选的实施方式,调用模块502根据被调用应用程序接口的地址确定调用服务包括:
根据被调用应用程序接口的地址确定被调用应用程序接口的开发状态;
响应于被调用应用程序接口的开发状态为已完成开发,确定调用服务为数据代理服务;
响应于被调用应用程序接口的开发状态为未完成开发,确定调用服务为数据模拟服务。
具体地,根据被调用API的地址判断被调用API是否开发完成,如果被调用API已完成开发,可以使用Proxy代理服务,则通过Proxy代理服务调用该API,向客户端返回对应的真实数据。如果被调用API尚未完成开发,则通过数据模拟服务模拟被调用API运行,向客户端返回模拟运行产生的模拟数据。
作为可选的实施方式,数据代理模块503响应于调用服务为所述数据代理服务,通过被调用应用程序接口向客户端返回真实数据包括:
根据被调用应用程序接口的地址,将应用程序接口调用请求转发到对应的被调用应用程序接口;
将被调用应用程序接口根据应用程序接口调用请求生成的真实数据返回给客户端。
数据模拟模块504响应于调用服务为数据模拟服务,通过数据模拟服务向客户端返回模拟数据包括:
数据模拟服务根据应用程序接口调用请求模拟被调用应用程序接口运行,生成对应的模拟数据;将模拟数据返回给客户端。
如图2所示,Mock服务运行过程如下:Node服务(服务器)监听客户端发来的请求,根据请求中的API地址,判断是使用Proxy代理服务还是数据Mock服务,如果使用Proxy代理服务,则将客户端的请求转发到相应的后端服务(即被请求调用的API),并将后端服务返回的真实数据,返回给用户请求;如果使用数据Mock服务,则根据Mock配置直接将模拟数据返回给客户端。
作为可选的实施方式,装置还包括:
匹配模块,被配置为调用模块502根据被调用应用程序接口的地址确定调用服务之前,根据被调用应用程序接口的地址,匹配对应的应用程序接口配置;
调用模块502根据应用程序接口配置确定调用服务。
具体地,如图2所示,服务器监听客户端发来的API调用请求,根据请求的API地址,匹配相应的API Request配置,Proxy代理服务和数据Mock服务都设有对应的API Request组件,根据匹配到的API Request配置,就可以确定该请求需要使用Proxy代理服务还是数据Mock服务。
作为可选的实施方式,匹配模块根据被调用应用程序接口的地址,匹配对应的应用程序接口配置包括:
响应于匹配到多个应用程序接口配置,根据预设规则确定多个应用程序接口配置的优先级。其中,预设规则包括:通过精准配置匹配到的应用程序接口配置的优先级大于通过正则配置匹配到的应用程序接口配置;和/或应用程序接口配置的优先级与应用程序接口配置的长度成正比。
服务器监听客户端发来的API调用请求,根据请求的API地址,匹配相应的APIRequest配置,如果匹配到多条API Request配置,则需要确定优先级最高的API Request配置。正则配置是指通过记录文本规则的代码,用来匹配或查找符合某些规则的字符串数据,正则匹配属于比较模糊的匹配,可能匹配到多条配置,如果精准配置到的是某一条特定的API Request配置,则精准配置到的API Request配置的优先级较高。另一种匹配规则是,配置越长优先级越高。
作为可选的实施方式,装置还包括:
配置模块,被配置为监听模块501监听客户端发送的应用程序接口调用请求之前,通过图形化配置界面,对数据代理服务和数据模拟服务进行配置;
图2所示存储模块204,被配置为调用图形化配置接口205存储数据代理服务和数据模拟服务的相关配置。
具体地,如图3所示,Mock配置过程如下:用户通过图形化配置Web界面,拖拽相应的组件并连线,在配置完成后,点击“保存”,调用图形化配置接口,将配置保存为JSON格式存储下来。
本公开还提供了一种应用程序接口调用装置600,如图6所示,包括:
请求模块601,被配置为向服务器发送应用程序接口调用请求;其中,应用程序接口调用请求包含被调用应用程序接口的地址;用于提供给服务器根据被调用应用程序接口的地址确定调用服务;调用服务包括数据代理服务和数据模拟服务;
接收模块602,被配置为接收服务器通过被调用应用程序接口向客户端返回的真实数据;或者接收服务器通过所述数据模拟服务向客户端返回的模拟数据。
具体地,本实施例中的方法可以应用于客户端。如图2所示,可以预先对Proxy代理服务和数据Mock服务进行配置,并将Proxy代理服务和数据Mock服务对应的API request配置(API请求配置)以JSON格式存储。在数据Mock服务运行过程,客户端可以向服务器发送API调用请求,监听客户端发送的API调用请求,根据请求中的被调用应用程序接口的地址(API地址)确定请求所需的调用服务,是需要使用Proxy代理服务(数据代理服务)还是数据Mock服务(数据模拟服务),再通过对应的服务向客户端返回数据。本公开通过上述方案整合了Proxy代理服务和数据Mock服务,可以实现快速切换代理服务器或Mock数据,提升了开发效率。
本公开还提供了一种应用程序接口配置系统,应用于上述任意一个实施例所述的应用程序接口调用方法,用于在执行应用程序接口调用方法之前,配置数据代理服务和数据模拟服务的相关组件,如图2所示,包括:
图形化配置界面201,用于配置各个组件;
数据代理模块202(图2所示Proxy模块),如图3所示,数据代理模块包括至少一个数据代理组件301(Proxy代理配置组件)、至少一个第一接口配置组件302(API Request配置组件),数据代理组件301连接对应的第一接口配置组件302;
数据模拟模块203(图2所示Mock模块),如图3所示,数据模拟模块包括至少一个数据模拟组件303(Mock配置组件)、至少一个第二接口配置组件304(API Request配置组件),数据模拟组件303连接对应的第二接口配置组件304。
如图3所示,配置界面分为组件区域和画布区域,组件区域放置相关组件。画布区域可添加页签,将相关的API配置组件放到同一个页签中,方便后续维护,页面右上角为操作区域,可以设置“保存”、“启动”、“重启”、“停止”、“导入导出配置”等操作区域。每个接口配置组件(API Request组件)可以通过点击来切换是否启用,没有启用的API Request组件则不会提供Proxy服务和Mock服务。
示例性地,本公开提供图形化配置界面,用户通过拖拽的方式快速组合Mock配置,系统提供几种基础组件,包括:API Request配置组件(配置要代理或者Mock的接口地址)、Proxy代理配置组件(配置代理服务器地址、代理参数等)、Mock配置组件(配置返回的Mock数据status和Body)。
作为可选的实施方式,如图3所示,数据代理模块还包括:至少一个第一开关组件305,数据代理组件301通过对应的第一开关组件305连接对应的第一接口配置组件302。
数据模拟模块还包括:至少一个第二开关组件306,数据模拟组件303通过对应的第二开关组件306连接对应的第二接口配置组件304。
开关组件用来切换配置,每个开关组件可以通过点击切换后续生效的组件,通过这种简单操作,可以快速切换Proxy服务地址、数据Mock成功、Mock失败等各种场景数据,通过设置开关组件可以切换多种不同的Mock场景,例如添加用户成功、添加用户失败、无权限等场景。每个组件都可以自行配置,通过双击组件会弹出详细配置,并可进行修改。
例如双击API Request组件弹出图7所示配置界面,API Request组件可配置地址模式为字符串或者正则表达式,地址详细内容以及请求的Method,包括GET/POST/PUT/DELETE/OPTIONS。如图8所示,双击开关组件可配置各个开关的名称,通过添加按钮增加开关,通过删除按钮移除开关。如图9所示,Proxy配置组件可以配置接口服务器的名称、接口地址、端口号,以及代理是是否需要change Origin(是否改变请求头中的原状)。如图10所示,Mock组件可配置名称,返回数据、HTTP状态码、返回数据格式。其中,返回数据分为固定数据和动态数据两种,如果是动态数据则可以输入函数,参数为API请求信息req,req对象(请求对象)包括请求地址path、请求方法method、请求参数query以及请求body(请求体)。
本实施例中的接口Proxy代理配置过程包括:
用户拖拽Proxy代理配置组件对应的API Request组件到画布上,配置要代理的接口地址,如/api/v1/user;
用户拖拽Proxy代理组件到画布上,配置要代理的服务器地址,如http://*.com;
用户拖拽对应的开关组件(第一开关组件305)到画布上,用来切换多个Proxy代理组件;其中,每个Proxy代理组件对应不同的应用场景,例如表示开发环境、测试环境、正式运行环境等;
通过连线将对应的API Request组件(第一接口配置组件302)、第一开关组件305、Proxy代理组件301连接起来,然后点击页面“保存”按钮,将配置保存起来。
保存起来的数据格式为JSON格式,数据格式示例如下:
整个配置文件为数组格式,每个字段含义如表1所示:
表1
数据Mock配置过程如下:
用户拖拽Mock组件(数据模拟组件303)对应的API Request组件(第二接口配置组件304)到画布上,配置要代理的接口地址,如/api/v1/user;
用户拖拽Mock组件到画布上,配置要Mock的数据和http status;
用户拖拽Mock组件对应的开关组件(第二开关组件306)到画布上,用来切换多个Mock组件;
通过连线将Mock组件对应的API Request组件、开关组件、Mock组件连接起来;
点击页面“保存”按钮,将配置保存起来。
配置的数据和Proxy配置格式类似,一个示例如下:
该方案不仅适用于Web开发,也适用于后端服务开发,可统一前后端的数据Mock技术栈。通过这种图形化的方式极大地简化了接口Proxy代理和数据Mock配置,降低了配置时间,并且可以瞬间切换代理服务器或Mock数据,提升了开发效率;并且通过该方案不会引发代码冲突,用户可以自行配置所需的Mock数据,可通过导入导出操作与其他用户分享Mock配置,实现Mock数据的复用。
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图11示出了可以用来实施本公开的实施例的示例电子设备1100的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图11所示,设备1100包括计算单元1101,其可以根据存储在只读存储器(ROM)1102中的计算机程序或者从存储单元1108加载到随机访问存储器(RAM)1103中的计算机程序,来执行各种适当的动作和处理。在RAM 1103中,还可存储设备1100操作所需的各种程序和数据。计算单元1101、ROM 1102以及RAM1103通过总线1104彼此相连。输入/输出(I/O)接口1105也连接至总线1104。
设备1100中的多个部件连接至I/O接口1105,包括:输入单元1106,例如键盘、鼠标等;输出单元1107,例如各种类型的显示器、扬声器等;存储单元1108,例如磁盘、光盘等;以及通信单元1109,例如网卡、调制解调器、无线通信收发机等。通信单元1109允许设备1100通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1101可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1101的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习目标函数算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1101执行上文所描述的各个方法和处理,例如应用程序接口调用方法。例如,在一些实施例中,应用程序接口调用方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1108。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1102和/或通信单元1109而被载入和/或安装到设备1100上。当计算机程序加载到RAM1103并由计算单元1101执行时,可以执行上文描述的应用程序接口调用方法的一个或多个步骤。备选地,在其他实施例中,计算单元1101可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行应用程序接口调用方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (23)
1.一种应用程序接口调用方法,包括:
监听客户端发送的应用程序接口调用请求;其中,所述应用程序接口调用请求包含被调用应用程序接口的地址;
根据所述被调用应用程序接口的地址确定调用服务;所述调用服务包括数据代理服务和数据模拟服务;
响应于所述调用服务为所述数据代理服务,通过所述被调用应用程序接口向所述客户端返回真实数据;
响应于所述调用服务为所述数据模拟服务,通过所述数据模拟服务向所述客户端返回模拟数据。
2.根据权利要求1所述的方法,其中,所述根据所述被调用应用程序接口的地址确定调用服务包括:
根据所述被调用应用程序接口的地址确定所述被调用应用程序接口的开发状态;
响应于所述被调用应用程序接口的开发状态为已完成开发,确定所述调用服务为所述数据代理服务;
响应于所述被调用应用程序接口的开发状态为未完成开发,确定所述调用服务为所述数据模拟服务。
3.根据权利要求1或2所述的方法,其中,所述响应于所述调用服务为所述数据代理服务,通过所述被调用应用程序接口向所述客户端返回真实数据包括:
根据所述被调用应用程序接口的地址,将所述应用程序接口调用请求转发到对应的所述被调用应用程序接口;
将所述被调用应用程序接口根据所述应用程序接口调用请求生成的所述真实数据返回给所述客户端。
4.根据权利要求1或2所述的方法,其中,所述响应于所述调用服务为所述数据模拟服务,通过所述数据模拟服务向所述客户端返回模拟数据包括:
所述数据模拟服务根据所述应用程序接口调用请求模拟所述被调用应用程序接口运行,生成对应的所述模拟数据;
将所述模拟数据返回给所述客户端。
5.根据权利要求1所述的方法,其中,所述根据所述被调用应用程序接口的地址确定调用服务之前,还包括:
根据所述被调用应用程序接口的地址,匹配对应的应用程序接口配置;
根据所述应用程序接口配置确定所述调用服务。
6.根据权利要求5所述的方法,其中,所述根据所述被调用应用程序接口的地址,匹配对应的应用程序接口配置包括:
响应于匹配到多个所述应用程序接口配置,根据预设规则确定多个所述应用程序接口配置的优先级。
7.根据权利要求6所述的方法,其中,所述预设规则包括:
通过精准配置匹配到的所述应用程序接口配置的优先级大于通过正则配置匹配到的所述应用程序接口配置;和/或
所述应用程序接口配置的优先级与所述应用程序接口配置的长度成正比。
8.根据权利要求1-7中任意一项所述的方法,其中,所述监听客户端发送的应用程序接口调用请求之前,还包括:
通过图形化配置界面,对所述数据代理服务和所述数据模拟服务进行配置;
调用图形化配置接口存储所述数据代理服务和所述数据模拟服务的相关配置。
9.一种应用程序接口调用方法,包括:
向服务器发送应用程序接口调用请求;其中,所述应用程序接口调用请求包含被调用应用程序接口的地址;用于提供给所述服务器根据所述被调用应用程序接口的地址确定调用服务;所述调用服务包括数据代理服务和数据模拟服务;
接收所述服务器通过所述被调用应用程序接口向客户端返回的真实数据;或者接收所述服务器通过所述数据模拟服务向所述客户端返回的模拟数据。
10.一种应用程序接口调用装置,包括:
监听模块,被配置为监听客户端发送的应用程序接口调用请求;其中,所述应用程序接口调用请求包含被调用应用程序接口的地址;
调用模块,被配置为根据所述被调用应用程序接口的地址确定调用服务;所述调用服务包括数据代理服务和数据模拟服务;
数据代理模块,被配置为响应于所述调用服务为所述数据代理服务,通过所述被调用应用程序接口向所述客户端返回真实数据;
数据模拟模块,被配置为响应于所述调用服务为所述数据模拟服务,通过所述数据模拟服务向所述客户端返回模拟数据。
11.根据权利要求10所述的装置,其中,所述调用模块根据所述被调用应用程序接口的地址确定调用服务包括:
根据所述被调用应用程序接口的地址确定所述被调用应用程序接口的开发状态;
响应于所述被调用应用程序接口的开发状态为已完成开发,确定所述调用服务为所述数据代理服务;
响应于所述被调用应用程序接口的开发状态为未完成开发,确定所述调用服务为所述数据模拟服务。
12.根据权利要求10或11所述的装置,其中,所述数据代理模块响应于所述调用服务为所述数据代理服务,通过所述被调用应用程序接口向所述客户端返回真实数据包括:
根据所述被调用应用程序接口的地址,将所述应用程序接口调用请求转发到对应的所述被调用应用程序接口;
将所述被调用应用程序接口根据所述应用程序接口调用请求生成的所述真实数据返回给所述客户端。
13.根据权利要求10或11所述的装置,其中,所述数据模拟模块响应于所述调用服务为所述数据模拟服务,通过所述数据模拟服务向所述客户端返回模拟数据包括:
所述数据模拟服务根据所述应用程序接口调用请求模拟所述被调用应用程序接口运行,生成对应的所述模拟数据;
将所述模拟数据返回给所述客户端。
14.根据权利要求10所述的装置,其中,还包括:
匹配模块,被配置为所述调用模块根据所述被调用应用程序接口的地址确定调用服务之前,根据所述被调用应用程序接口的地址,匹配对应的应用程序接口配置;
所述调用模块根据所述应用程序接口配置确定所述调用服务。
15.根据权利要求14所述的装置,其中,所述匹配模块根据所述被调用应用程序接口的地址,匹配对应的应用程序接口配置包括:
响应于匹配到多个所述应用程序接口配置,根据预设规则确定多个所述应用程序接口配置的优先级。
16.根据权利要求15所述的装置,其中,所述预设规则包括:
通过精准配置匹配到的所述应用程序接口配置的优先级大于通过正则配置匹配到的所述应用程序接口配置;和/或
所述应用程序接口配置的优先级与所述应用程序接口配置的长度成正比。
17.根据权利要求10-16中任意一项所述的装置,其中,还包括:
配置模块,被配置为所述监听模块监听客户端发送的应用程序接口调用请求之前,通过图形化配置界面,对所述数据代理服务和所述数据模拟服务进行配置;
存储模块,被配置为调用图形化配置接口存储所述数据代理服务和所述数据模拟服务的相关配置。
18.一种应用程序接口调用装置,包括:
请求模块,被配置为向服务器发送应用程序接口调用请求;其中,所述应用程序接口调用请求包含被调用应用程序接口的地址;用于提供给所述服务器根据所述被调用应用程序接口的地址确定调用服务;所述调用服务包括数据代理服务和数据模拟服务;
接收模块,被配置为接收所述服务器通过所述被调用应用程序接口向客户端返回的真实数据;或者接收所述服务器通过所述数据模拟服务向所述客户端返回的模拟数据。
19.一种应用程序接口配置系统,应用于权利要求1-9中任意一项所述的应用程序接口调用方法,用于在执行所述应用程序接口调用方法之前,配置所述数据代理服务和所述数据模拟服务的相关组件,包括:
图形化配置界面,用于配置各个组件;
数据代理模块,所述数据代理模块包括至少一个数据代理组件、至少一个第一接口配置组件,所述数据代理组件连接对应的所述第一接口配置组件;
数据模拟模块,所述数据模拟模块包括至少一个数据模拟组件、至少一个第二接口配置组件,所述数据模拟组件连接对应的所述第二接口配置组件。
20.根据权利要求19所述的应用程序接口配置系统,其中,所述数据代理模块还包括:
至少一个第一开关组件,所述数据代理组件通过对应的所述第一开关组件连接对应的所述第一接口配置组件;
所述数据模拟模块还包括:
至少一个第二开关组件,所述数据模拟组件通过对应的所述第二开关组件连接对应的所述第二接口配置组件。
21.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-9中任一项所述的方法。
22.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-9中任一项所述的方法。
23.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311568615.XA CN117555625A (zh) | 2023-11-22 | 2023-11-22 | 应用程序接口调用方法、装置、应用程序接口配置系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311568615.XA CN117555625A (zh) | 2023-11-22 | 2023-11-22 | 应用程序接口调用方法、装置、应用程序接口配置系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117555625A true CN117555625A (zh) | 2024-02-13 |
Family
ID=89814436
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311568615.XA Pending CN117555625A (zh) | 2023-11-22 | 2023-11-22 | 应用程序接口调用方法、装置、应用程序接口配置系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117555625A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110716975A (zh) * | 2019-10-08 | 2020-01-21 | 杭州数政科技有限公司 | 一种数据接口生成方法以及数据接口共享平台 |
CN111782535A (zh) * | 2020-06-30 | 2020-10-16 | 京东数字科技控股股份有限公司 | 测试方法及装置 |
CN116680187A (zh) * | 2023-06-16 | 2023-09-01 | 建信金融科技有限责任公司 | 一种数据处理方法和装置 |
-
2023
- 2023-11-22 CN CN202311568615.XA patent/CN117555625A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110716975A (zh) * | 2019-10-08 | 2020-01-21 | 杭州数政科技有限公司 | 一种数据接口生成方法以及数据接口共享平台 |
CN111782535A (zh) * | 2020-06-30 | 2020-10-16 | 京东数字科技控股股份有限公司 | 测试方法及装置 |
CN116680187A (zh) * | 2023-06-16 | 2023-09-01 | 建信金融科技有限责任公司 | 一种数据处理方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110765024B (zh) | 模拟测试方法、装置、电子设备和计算机可读存储介质 | |
CN114389969B (zh) | 客户端的测试方法、装置、电子设备和存储介质 | |
CN112035344A (zh) | 多场景测试方法、装置、设备和计算机可读存储介质 | |
CN114374703B (zh) | 云手机信息的获取方法、装置、设备以及存储介质 | |
CN114401121A (zh) | 应用程序登录方法、装置、电子设备及可读存储介质 | |
CN117520195A (zh) | 测试接口的方法、装置、设备、存储介质及程序产品 | |
CN117194068A (zh) | 一种跨进程数据传输方法、系统、设备及存储介质 | |
CN117040799A (zh) | 页面拦截规则生成、页面访问控制方法、装置及电子设备 | |
CN114095758B (zh) | 云图像截取方法、相关装置 | |
CN112052152A (zh) | 一种模拟测试的方法和装置 | |
CN117555625A (zh) | 应用程序接口调用方法、装置、应用程序接口配置系统 | |
CN112966201B (zh) | 对象处理方法、装置、电子设备以及存储介质 | |
CN115357493A (zh) | 测试方法、装置、电子设备和存储介质 | |
CN114756301A (zh) | 日志处理方法、装置和系统 | |
CN114741286A (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
CN113691403A (zh) | 拓扑节点配置方法、相关装置及计算机程序产品 | |
CN110768855B (zh) | 链路化性能测试的方法和装置 | |
CN113612643A (zh) | 云手机的网络配置方法、装置、设备以及存储介质 | |
CN113760707A (zh) | 接口测试方法、装置、设备及计算机可读存储介质 | |
US10333837B2 (en) | Virtual network switch system and method of constructing the same | |
CN116260855B (zh) | 通信方法、装置、电子设备以及存储介质 | |
CN114785631B (zh) | 通信协议栈复用方法、通信方法、计算机设备及介质 | |
CN115277652B (zh) | 基于推理服务的流媒体处理方法、装置、电子设备 | |
CN116029380B (zh) | 量子算法处理方法、装置、设备、存储介质及程序产品 | |
CN113656268B (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 |