CN111988398A - 一种数据获取方法、api网关、介质 - Google Patents
一种数据获取方法、api网关、介质 Download PDFInfo
- Publication number
- CN111988398A CN111988398A CN202010837505.9A CN202010837505A CN111988398A CN 111988398 A CN111988398 A CN 111988398A CN 202010837505 A CN202010837505 A CN 202010837505A CN 111988398 A CN111988398 A CN 111988398A
- Authority
- CN
- China
- Prior art keywords
- service
- result
- preset
- target
- rule
- 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 49
- 238000005516 engineering process Methods 0.000 claims abstract description 38
- 238000004590 computer program Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 7
- 239000000284 extract Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (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
本申请公开了一种数据获取方法、API网关、介质,该方法包括:获取目标应用发送的服务请求;根据所述服务请求和预设服务规则确定所述服务请求对应的目标服务列表;根据所述目标服务列表进行服务发现,并利用预设服务调用技术对发现的待调用服务进行调用,得到结果集;根据所述服务请求和预设结果规则对所述结果集中的服务结果数据进行处理,得到目标结果;将所述目标结果返回给所述目标应用。这样能够节约API网关的整个调用过程耗时,提高API网关调用的灵活性。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种数据获取方法、API网关、介质。
背景技术
API(Application Programming Interface,应用程序编程接口)网关是客户端利用API请求访问一个或多个服务器中存储的各服务方提供的服务对象的统一入口。API网关是将各服务方提供的服务对象聚合起来,所有要调用这些服务对象的客户端都需要通过API网关进行访问。
在现有技术中,API服务在接收到服务请求时,需要根据服务请求修改相应的代码,以配置与服务请求对应的API进行服务的调用,便得到相应的调用结果,在这种方式下,每次需要根据服务请求中的需求进行代码修改,导致整个调用过程消耗时间较长,且灵活性较差。
发明内容
有鉴于此,本申请的目的在于提供一种数据获取方法、API网关、介质,能够节约API网关的整个调用过程耗时,提高API网关调用的灵活性。其具体方案如下:
第一方面,本申请公开了一种数据获取方法,应用于API网关,包括:
获取目标应用发送的服务请求;
根据所述服务请求和预设服务规则确定所述服务请求对应的目标服务列表;
根据所述目标服务列表进行服务发现,并利用预设服务调用技术对发现的待调用服务进行调用,得到结果集;
根据所述服务请求和预设结果规则对所述结果集中的服务结果数据进行处理,得到目标结果;
将所述目标结果返回给所述目标应用。
可选的,所述根据所述目标服务列表进行服务发现,并利用预设服务调用技术对发现的待调用服务进行调用,包括:
当所述目标服务列表中的待调用服务为HTTP服务时,利用nacos发现所述目标服务列表中的待调用服务;
利用spring框架提供的RestTemplate技术利用预设服务调用技术对发现的待调用服务进行调用。
可选的,所述根据所述目标服务列表进行服务发现,并利用预设服务调用技术对发现的待调用服务进行调用,包括:
当所述目标服务列表中的待调用服务为dubbo服务时,利用zookeeper发现所述目标服务列表中的待调用服务;
利用netty中的telnet协议获取发现的所述待调用服务的服务信息;
利用dubbo泛化技术和所述服务信息对所述待调用服务进行调用。
可选的,所述根据所述服务请求和预设结果规则对所述结果集中的服务结果数据进行处理,得到目标结果,包括:
基于Fast Json&JsonPath技术、所述服务请求和所述预设结果规则对所述结果集中的服务结果数据进行处理,得到目标结果。
可选的,所述利用预设服务调用技术对发现的待调用服务进行调用,得到结果集之后,还包括:
将所述结果集中的服务结果数据缓存到预设redis数据库中。
可选的,所述数据获取方法,还包括:
获取所述预设服务规则和所述预设结果规则,其中,所述预设服务规则和所述预设结果规则存储在预设服务器的MySQL数据库中。
可选的,所述根据所述服务请求和预设服务规则,确定所述服务请求对应的目标服务列表,包括:
根据所述服务请求和预设服务规则,确定出所述服务请求对应的所述待调用服务;
基于所述预设服务规则对所述待调用服务进行编排,得到所述目标服务列表。
第二方面,本申请公开了一种API网关,包括:
请求获取模块,用于获取目标应用发送的服务请求;
服务确定模块,用于根据所述服务请求和预设服务规则确定所述服务请求对应的目标服务列表;
服务发现模块,用于根据所述目标服务列表进行服务发现;
服务调用模块,用于对所述服务发现模块发现的待调用服务进行调用,得到结果集;
结果处理模块,用于根据所述服务请求和预设结果规则对所述结果集中的服务结果数据进行处理,得到目标结果;
数据发送模块,用于将所述目标结果返回给所述目标应用。
可选的,所述服务确定模块,包括:
服务确定单元,用于根据所述服务请求和预设服务规则,确定出所述服务请求对应的所述待调用服务;
服务编排单元,用于基于所述预设服务规则对所述待调用服务进行编排,得到所述目标服务列表。
第三方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的数据获取方法。
可见,本申请先获取目标应用发送的服务请求,然后根据所述服务请求和预设服务规则确定所述服务请求对应的目标服务列表,接着根据所述目标服务列表进行服务发现,并利用预设服务调用技术对发现的待调用服务进行调用,得到结果集,再根据所述服务请求和预设结果规则对所述结果集中的服务结果数据进行处理,得到目标结果,并将所述目标结果返回给所述目标应用。这样在获取到服务请求时,先根据服务请求和预设服务规则确定出待调用服务的服务列表,并且根据服务列表对待调用服务进行发现和调用,能够根据服务请求和预设服务规则对服务进行组装和编排,可以满足不同的服务请求,且根据预设服务规则,即可完成新服务请求的输出,由此能够节约API网关的整个调用过程耗时,提高API网关调用的灵活性;且得到结果集之后,可以根据服务请求和预设结果规则对结果集中的服务结果数据进行处理以得到目标结果,所以通过结果规则的配置,应用可以拿到需要展示的结果数据。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种数据获取方法流程图;
图2为本申请公开的一种具体的数据获取方法流程图;
图3为本申请公开的一种数据获取流程图;
图4为本申请公开的一种API网关进行数据获取的时序图;
图5为本申请公开的一种API网关对应的系统的组织架构示意图;
图6为本申请公开的一种API网关对应的系统的架构示意图;
图7为本申请公开的一种API网关结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,API服务在接收到服务请求时,需要根据服务请求修改相应的代码,以配置与服务请求对应的API进行服务的调用,便得到相应的调用结果,在这种方式下,每次需要根据服务请求中的需求进行代码修改,导致整个调用过程消耗时间较长,且灵活性较差。有鉴于此,本申请提出了一种数据获取方法,应用于API网关,能够节约API网关的整个调用过程耗时,提高API网关调用的灵活性。
参见图1所示,本申请实施例公开了一种数据获取方法,应用于API网关,该方法包括:
步骤S11:获取目标应用发送的服务请求。
在实际应用中,所述API网关可以为相应的应用提供访问服务对应的入口,应用在需要调用服务时,需先向API网关发送服务请求,以便API网关确定需要调用的服务,并配置API。所以所述API网关需要先获取目标应用发送的服务请求。其中,所述服务请求中可以包括但不限于服务ID(identity,身份标识)以及服务参数。
步骤S12:根据所述服务请求和预设服务规则确定所述服务请求对应的目标服务列表。
可以理解的是,在获取到所述服务请求之后,便可以根据所述服务请求和预设服务规则确定所述服务请求对应的目标服务列表。也即,根据所述服务请求和所述预设服务规则便可以确定出所述服务请求对应的目标服务列表,所述目标服务列表中包括待调用服务。
步骤S13:根据所述目标服务列表进行服务发现,并利用预设服务调用技术对发现的待调用服务进行调用,得到结果集。
在确定出所述目标服务列表之后,还需要根据所述目标服务列表进行服务发现,并利用预设服务调用技术对发现的待调用服务进行调用,得到结果集。具体的,就是需要发现所述目标服务列表中的待调用服务,发现所述待调用服务之后,利用与所述待调用服务对应的预设服务调用技术对其进行调用,以产生结果集。
在实际应用中,所述待调用服务可包括但不限于HTTP(HyperText TransferProtocol,超文本传输协议)服务、dubbo服务。当所述目标服务列表中的待调用服务为dubbo服务时,利用zookeeper发现所述目标服务列表中的待调用服务;利用netty中的telnet协议获取发现的所述待调用服务的服务信息;利用dubbo泛化技术和所述服务信息对所述待调用服务进行调用。当所述目标服务列表中的待调用服务为HTTP服务时,利用nacos发现所述目标服务列表中的待调用服务;利用spring框架提供的RestTemplate技术利用预设服务调用技术对发现的待调用服务进行调用。
步骤S14:根据所述服务请求和预设结果规则对所述结果集中的服务结果数据进行处理,得到目标结果。
得到所述结果集之后,还需要根据所述服务请求和预设结果规则对结果集中的服务结果数据进行处理,得到目标结果。所述预设结果规则包括不同服务对应的结果样式以及属性等。不同服务对应的结果样式、属性等不相同,所以需要根据所述服务请求和所述预设结果规则确定所述服务请求对应的结果的样式、属性等,然后根据确定出的结果样式、属性对所述结果集中的服务结果数据进行处理,得到所述目标结果。
具体的,所述根据所述服务请求和预设结果规则对所述结果集中的服务结果数据进行处理,得到目标结果,包括:基于Fast Json(JavaScript Object Notation,JS对象简谱)&JsonPath技术、所述服务请求和所述预设结果规则对所述结果集中的服务结果数据进行处理,得到目标结果。也即,可以先根据所述服务请求和所述预设结果规则确定出所述服务请求对应的结果规则,然后利用Fast Json中的JsonPath和确定出的结果规则对所述结果集中的服务结果数据进行处理,得到所述目标结果。
步骤S15:将所述目标结果返回给所述目标应用。
得到所述目标结果之后,还需要将所述目标结果返回给所述目标应用,以便所述目标应用对所目标结果进行相应的处理,所述处理包括但不限于可视化显示。
可见,本申请先获取目标应用发送的服务请求,然后根据所述服务请求和预设服务规则确定所述服务请求对应的目标服务列表,接着根据所述目标服务列表进行服务发现,并利用预设服务调用技术对发现的待调用服务进行调用,得到结果集,再根据所述服务请求和预设结果规则对所述结果集中的服务结果数据进行处理,得到目标结果,并将所述目标结果返回给所述目标应用。这样在获取到服务请求时,先根据服务请求和预设服务规则确定出待调用服务的服务列表,并且根据服务列表对待调用服务进行发现和调用,能够根据服务请求和预设服务规则对服务进行组装和编排,可以满足不同的服务请求,且根据预设服务规则,即可完成新服务请求的输出,由此能够节约API网关的整个调用过程耗时,提高API网关调用的灵活性;且得到结果集之后,可以根据服务请求和预设结果规则对结果集中的服务结果数据进行处理以得到目标结果,所以通过结果规则的配置,应用可以拿到需要展示的结果数据。
参见图2所示,本申请实施例公开了一种具体的数据获取方法,应用于API网关,该方法包括:
步骤S21:获取预设服务规则,其中,所述预设服务规则存储在预设服务器的MySQL数据库中。
在具体的实施过程中,需要获取预设服务规则,其中,所述预设服务规则存储在预设服务器的MySQL数据库中。所述预设服务规则可以存储在第三方服务器的MySQL数据库中,所以需要先获取所述预设服务规则。
步骤S22:获取目标应用发送的服务请求。
步骤S23:根据所述服务请求和预设服务规则确定所述服务请求对应的目标服务列表。
在获取到所述服务请求之后,还需要根据所述服务请求和预设服务规则确定所述服务请求对应的目标服务列表。具体的,可以先根据所述服务请求和预设服务规则,确定出所述服务请求对应的所述待调用服务;基于所述预设服务规则对所述待调用服务进行编排,得到所述目标服务列表。一个服务请求可以会需要调用不同的服务,各个服务之间的调用顺序需要满足一定的需求,所以可以先根据所述预设服务规则确定出所述服务请求对应的待调用服务,然后再根据所述预设服务规则中与所述服务请求对应的编排规则,对所述待调用服务进行编排,得到所述目标服务列表。
步骤S24:根据所述目标服务列表进行服务发现,并利用预设服务调用技术对发现的待调用服务进行调用,得到结果集。
在确定出所述目标服务列表之后,还需要根据所述目标服务列表进行服务发现,并利用预设服务调用技术对发现的待调用服务进行调用,得到结果集。得到所述结果集之后,可以将所述结果集中的服务结果数据缓存到预设redis数据库中。
步骤S25:获取预设结果规则,其中,所述预设结果规则存储在预设服务器的MySQL数据库中。
在具体的实施过程中,需要获取预设结果规则,其中,所述预设结果规则存储在预设服务器的MySQL数据库中。所述预设结果规则可以存储在第三方服务器的MySQL数据库中,所以需要先获取所述预设结果规则。
步骤S26:基于Fast Json&JsonPath技术、所述服务请求和所述预设结果规则对所述结果集中的服务结果数据进行处理,得到目标结果。
步骤S27:将所述目标结果返回给所述目标应用。
参见图3所示,为数据获取流程图。在获取到服务请求之后,根据预设的服务规则和所述服务请求进行服务获取,也即根据预设的服务规则和所述服务请求确定待调用服务,然后根据服务规则编排任务,也即对待调用服务进行编排,通过线程池中的线程调用发现的服务,得到相应的结果集,然后进行结果编排,得到目标结果,也即根据预设的结果规则对结果集中的服务结果数据进行处理。在服务发现过程中,当待调用服务为dubbo服务时,利用zookeeper发现所述待调用服务,当待调用服务为HTTP服务时,利用nacos发现待调用服务。一个线程可以调用多个服务,例如,线程1(Thread 1)调用服务A,线程2(Thread 2)调用服务B,线程3(Thread 3)调用服务C、服务D,线程4(Thread 4)调用服务E、服务F、服务G。
参见图4所示,为API网关进行数据获取的时序图。在获取到服务请求之后,从第三方存储中获取服务列表,也即,从第三方中获取服务规则,根据所述服务规则和所述服务请求确定出服务列表,然后对所述服务列表中的待调用服务进行编排,并利用spring框架提供的RestTemplate技术发现nacos发现HTTP服务服务,并返回相应的服务列表,线程池中的线程进行HTTP服务调用,并返回结果,利用netty中的telnet协议获取发现zookeeper发现dubbo服务,然后线程池中的线程进行dubbo服务调用,并返回结果,线程池对调用得到的结果进行收集,从第三方获取预设的结果规则,第三方返回结果规则配置后,根据结果规则对结果进行处理,以及解析结果。
参见图5所示,为API网关对应的系统的组织架构示意图。API网关接收前端发送的服务请求之后,分别根据运营、开发配置的服务API规则配置(也即服务规则)、结果模板配置(结果规则配置)进行web服务、dubbo服务的调用以及调用结果的处理。
参见图6所示,为API网关对应的系统的架构示意图。接收到前端(PC(PersonalComputer,个人计算机)或APP(Application,手机软件))发送的请求之后,规则加载模块,对运营、开发配置API投放规则得到的、由第三方存储的服务规则和架构规则进行提取,其中,服务规则和结果规则都是json格式。将结果规则对应的json发送到结果解析模块。所述服务规则包括服务名和服务名对应的API名称,例如,服务A对应API A,服务B对应API B,服务C对应API C。然后规则加载模块向服务网关传递和请求对应的API名称,其中,所述服务网关包括HTTP服务、dubbo服务以及其他服务。服务网关根据API加载数据,包括服务A到服务N。并将获取到的结果发生到各类服务结果模块,各类服务结果模块按照结果规则进行结果组装,结果解析模块将json对应的结果返回给前端。
参见图7所示,本申请实施例公开了一种API网关,包括:
请求获取模块11,用于获取目标应用发送的服务请求;
服务确定模块12,用于根据所述服务请求和预设服务规则确定所述服务请求对应的目标服务列表;
服务发现模块13,用于根据所述目标服务列表进行服务发现;
服务调用模块14,用于对所述服务发现模块发现的待调用服务进行调用,得到结果集;
结果处理模块15,用于根据所述服务请求和预设结果规则对所述结果集中的服务结果数据进行处理,得到目标结果;
数据发送模块16,用于将所述目标结果返回给所述目标应用。
可见,本申请先获取目标应用发送的服务请求,然后根据所述服务请求和预设服务规则确定所述服务请求对应的目标服务列表,接着根据所述目标服务列表进行服务发现,并利用预设服务调用技术对发现的待调用服务进行调用,得到结果集,再根据所述服务请求和预设结果规则对所述结果集中的服务结果数据进行处理,得到目标结果,并将所述目标结果返回给所述目标应用。这样在获取到服务请求时,先根据服务请求和预设服务规则确定出待调用服务的服务列表,并且根据服务列表对待调用服务进行发现和调用,能够根据服务请求和预设服务规则对服务进行组装和编排,可以满足不同的服务请求,且根据预设服务规则,即可完成新服务请求的输出,由此能够节约API网关的整个调用过程耗时,提高API网关调用的灵活性;且得到结果集之后,可以根据服务请求和预设结果规则对结果集中的服务结果数据进行处理以得到目标结果,所以通过结果规则的配置,应用可以拿到需要展示的结果数据。
进一步的,所述服务发现模块13,用于:
当所述目标服务列表中的待调用服务为HTTP服务时,利用nacos发现所述目标服务列表中的待调用服务;
相应的,所述服务调用模块14,用于:
利用spring框架提供的RestTemplate技术对发现的待调用服务进行调用。
进一步的,所述服务发现模块13,用于:
当所述目标服务列表中的待调用服务为dubbo服务时,利用zookeeper发现所述目标服务列表中的待调用服务;
相应的,所述服务调用模块14,用于:
利用netty中的telnet协议获取发现的所述待调用服务的服务信息;
利用dubbo泛化技术和所述服务信息对所述待调用服务进行调用。
具体的,所述结果处理模块15,用于:
基于Fast Json&JsonPath技术、所述服务请求和所述预设结果规则对所述结果集中的服务结果数据进行处理,得到目标结果。
具体的,所述服务确定模块,包括:
服务确定单元,用于根据所述服务请求和预设服务规则,确定出所述服务请求对应的所述待调用服务;
服务编排单元,用于基于所述预设服务规则对所述待调用服务进行编排,得到所述目标服务列表。
在具体的实施过程中,所述API网关,还包括:
数据缓存模块,用于将所述结果集中的服务结果数据缓存到预设redis数据库中。
在具体的实施过程中,所述API网关,还包括:
规则获取模块,用于获取所述预设服务规则和所述预设结果规则,其中,所述预设服务规则和所述预设结果规则存储在预设服务器的MySQL数据库中。
具体的,所述服务确定模块,包括:
服务确定单元,用于根据所述服务请求和预设服务规则,确定出所述服务请求对应的所述待调用服务;
服务编排单元,用于基于所述预设服务规则对所述待调用服务进行编排,得到所述目标服务列表。
进一步的,本申请实施例还公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现以下步骤:
获取目标应用发送的服务请求;根据所述服务请求和预设服务规则确定所述服务请求对应的目标服务列表;根据所述目标服务列表进行服务发现,并利用预设服务调用技术对发现的待调用服务进行调用,得到结果集;根据所述服务请求和预设结果规则对所述结果集中的服务结果数据进行处理,得到目标结果;将所述目标结果返回给所述目标应用。
可见,本申请先获取目标应用发送的服务请求,然后根据所述服务请求和预设服务规则确定所述服务请求对应的目标服务列表,接着根据所述目标服务列表进行服务发现,并利用预设服务调用技术对发现的待调用服务进行调用,得到结果集,再根据所述服务请求和预设结果规则对所述结果集中的服务结果数据进行处理,得到目标结果,并将所述目标结果返回给所述目标应用。这样在获取到服务请求时,先根据服务请求和预设服务规则确定出待调用服务的服务列表,并且根据服务列表对待调用服务进行发现和调用,能够根据服务请求和预设服务规则对服务进行组装和编排,可以满足不同的服务请求,且根据预设服务规则,即可完成新服务请求的输出,由此能够节约API网关的整个调用过程耗时,提高API网关调用的灵活性;且得到结果集之后,可以根据服务请求和预设结果规则对结果集中的服务结果数据进行处理以得到目标结果,所以通过结果规则的配置,应用可以拿到需要展示的结果数据。
本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:当所述目标服务列表中的待调用服务为HTTP服务时,利用nacos发现所述目标服务列表中的待调用服务;利用spring框架提供的RestTemplate技术对发现的待调用服务进行调用。
本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:当所述目标服务列表中的待调用服务为dubbo服务时,利用zookeeper发现所述目标服务列表中的待调用服务;利用netty中的telnet协议获取发现的所述待调用服务的服务信息;利用dubbo泛化技术和所述服务信息对所述待调用服务进行调用。
本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:基于Fast Json&JsonPath技术、所述服务请求和所述预设结果规则对所述结果集中的服务结果数据进行处理,得到目标结果。
本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:将所述结果集中的服务结果数据缓存到预设redis数据库中。
本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:获取所述预设服务规则和所述预设结果规则,其中,所述预设服务规则和所述预设结果规则存储在预设服务器的MySQL数据库中。
本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:根据所述服务请求和预设服务规则,确定出所述服务请求对应的所述待调用服务;基于所述预设服务规则对所述待调用服务进行编排,得到所述目标服务列表。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得一系列包含其他要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种数据获取方法、API网关、介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种数据获取方法,其特征在于,应用于API网关,包括:
获取目标应用发送的服务请求;
根据所述服务请求和预设服务规则确定所述服务请求对应的目标服务列表;
根据所述目标服务列表进行服务发现,并利用预设服务调用技术对发现的待调用服务进行调用,得到结果集;
根据所述服务请求和预设结果规则对所述结果集中的服务结果数据进行处理,得到目标结果;
将所述目标结果返回给所述目标应用。
2.根据权利要求1所述的数据获取方法,其特征在于,所述根据所述目标服务列表进行服务发现,并利用预设服务调用技术对发现的待调用服务进行调用,包括:
当所述目标服务列表中的待调用服务为HTTP服务时,利用nacos发现所述目标服务列表中的待调用服务;
利用spring框架提供的RestTemplate技术对发现的待调用服务进行调用。
3.根据权利要求1所述的数据获取方法,其特征在于,所述根据所述目标服务列表进行服务发现,并利用预设服务调用技术对发现的待调用服务进行调用,包括:
当所述目标服务列表中的待调用服务为dubbo服务时,利用zookeeper发现所述目标服务列表中的待调用服务;
利用netty中的telnet协议获取发现的所述待调用服务的服务信息;
利用dubbo泛化技术和所述服务信息对所述待调用服务进行调用。
4.根据权利要求1所述的数据获取方法,其特征在于,所述根据所述服务请求和预设结果规则对所述结果集中的服务结果数据进行处理,得到目标结果,包括:
基于Fast Json&JsonPath技术、所述服务请求和所述预设结果规则对所述结果集中的服务结果数据进行处理,得到目标结果。
5.根据权利要求1所述的数据获取方法,其特征在于,所述利用预设服务调用技术对发现的待调用服务进行调用,得到结果集之后,还包括:
将所述结果集中的服务结果数据缓存到预设redis数据库中。
6.根据权利要求1所述的数据获取方法,其特征在于,还包括:
获取所述预设服务规则和所述预设结果规则,其中,所述预设服务规则和所述预设结果规则存储在预设服务器的MySQL数据库中。
7.根据权利要求1至6任一项所述的数据获取方法,其特征在于,所述根据所述服务请求和预设服务规则,确定所述服务请求对应的目标服务列表,包括:
根据所述服务请求和预设服务规则,确定出所述服务请求对应的所述待调用服务;
基于所述预设服务规则对所述待调用服务进行编排,得到所述目标服务列表。
8.一种API网关,其特征在于,包括:
请求获取模块,用于获取目标应用发送的服务请求;
服务确定模块,用于根据所述服务请求和预设服务规则确定所述服务请求对应的目标服务列表;
服务发现模块,用于根据所述目标服务列表进行服务发现;
服务调用模块,用于对所述服务发现模块发现的待调用服务进行调用,得到结果集;
结果处理模块,用于根据所述服务请求和预设结果规则对所述结果集中的服务结果数据进行处理,得到目标结果;
数据发送模块,用于将所述目标结果返回给所述目标应用。
9.根据权利要求8所述的API网关,其特征在于,所述服务确定模块,包括:
服务确定单元,用于根据所述服务请求和预设服务规则,确定出所述服务请求对应的所述待调用服务;
服务编排单元,用于基于所述预设服务规则对所述待调用服务进行编排,得到所述目标服务列表。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的数据获取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010837505.9A CN111988398A (zh) | 2020-08-19 | 2020-08-19 | 一种数据获取方法、api网关、介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010837505.9A CN111988398A (zh) | 2020-08-19 | 2020-08-19 | 一种数据获取方法、api网关、介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111988398A true CN111988398A (zh) | 2020-11-24 |
Family
ID=73435601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010837505.9A Pending CN111988398A (zh) | 2020-08-19 | 2020-08-19 | 一种数据获取方法、api网关、介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111988398A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113014560A (zh) * | 2021-02-18 | 2021-06-22 | 欧冶云商股份有限公司 | 一种dubbo服务动态调用方法、计算机设备和存储介质 |
CN114866479A (zh) * | 2022-04-24 | 2022-08-05 | 中电万维信息技术有限责任公司 | 一种基于服务网关的业务融合方法 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1775657A1 (en) * | 2005-10-12 | 2007-04-18 | Samsung Electronics Co., Ltd. | Method and apparatus for providing home network device service to an external device through WEB service |
CN101634994A (zh) * | 2009-08-28 | 2010-01-27 | 北京大学 | 一种服务发现和组合装置 |
CN101859318A (zh) * | 2010-05-17 | 2010-10-13 | 天津大学 | 一种基于服务网络的服务发现工具的建立方法 |
US20170012815A1 (en) * | 2015-07-09 | 2017-01-12 | Verizon Patent And Licensing Inc. | Software service discovery and service evolution management |
CN108111496A (zh) * | 2017-12-13 | 2018-06-01 | 杭州安恒信息技术有限公司 | 为dubbo分布式应用暴露http服务的方法、装置及系统 |
CN108989372A (zh) * | 2017-06-02 | 2018-12-11 | 华为技术有限公司 | 服务发现的方法、注册中心和设备 |
CN109510846A (zh) * | 2017-09-14 | 2019-03-22 | 北京金山云网络技术有限公司 | Api调用系统、方法、装置、电子设备及存储介质 |
CN110062043A (zh) * | 2019-04-16 | 2019-07-26 | 杭州朗和科技有限公司 | 服务治理方法、服务治理装置、存储介质及电子设备 |
CN110557284A (zh) * | 2019-08-30 | 2019-12-10 | 贝壳技术有限公司 | 基于客户端网关的数据聚合方法及装置 |
CN110798411A (zh) * | 2018-08-03 | 2020-02-14 | 阿里巴巴集团控股有限公司 | 服务调用方法、流量调度方法及装置 |
CN111258810A (zh) * | 2020-01-09 | 2020-06-09 | 广东小天才科技有限公司 | 一种切换数据源的实现方法、系统、终端设备和存储介质 |
CN111290865A (zh) * | 2020-02-10 | 2020-06-16 | 腾讯科技(深圳)有限公司 | 一种服务调用方法、装置、电子设备和存储介质 |
US20200226009A1 (en) * | 2019-04-02 | 2020-07-16 | Intel Corporation | Scalable and accelerated function as a service calling architecture |
CN111431962A (zh) * | 2020-02-20 | 2020-07-17 | 北京邮电大学 | 基于情景感知计算的跨域资源接入物联网服务发现方法 |
-
2020
- 2020-08-19 CN CN202010837505.9A patent/CN111988398A/zh active Pending
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1775657A1 (en) * | 2005-10-12 | 2007-04-18 | Samsung Electronics Co., Ltd. | Method and apparatus for providing home network device service to an external device through WEB service |
CN101634994A (zh) * | 2009-08-28 | 2010-01-27 | 北京大学 | 一种服务发现和组合装置 |
CN101859318A (zh) * | 2010-05-17 | 2010-10-13 | 天津大学 | 一种基于服务网络的服务发现工具的建立方法 |
US20170012815A1 (en) * | 2015-07-09 | 2017-01-12 | Verizon Patent And Licensing Inc. | Software service discovery and service evolution management |
CN108989372A (zh) * | 2017-06-02 | 2018-12-11 | 华为技术有限公司 | 服务发现的方法、注册中心和设备 |
CN109510846A (zh) * | 2017-09-14 | 2019-03-22 | 北京金山云网络技术有限公司 | Api调用系统、方法、装置、电子设备及存储介质 |
CN108111496A (zh) * | 2017-12-13 | 2018-06-01 | 杭州安恒信息技术有限公司 | 为dubbo分布式应用暴露http服务的方法、装置及系统 |
CN110798411A (zh) * | 2018-08-03 | 2020-02-14 | 阿里巴巴集团控股有限公司 | 服务调用方法、流量调度方法及装置 |
US20200226009A1 (en) * | 2019-04-02 | 2020-07-16 | Intel Corporation | Scalable and accelerated function as a service calling architecture |
CN110062043A (zh) * | 2019-04-16 | 2019-07-26 | 杭州朗和科技有限公司 | 服务治理方法、服务治理装置、存储介质及电子设备 |
CN110557284A (zh) * | 2019-08-30 | 2019-12-10 | 贝壳技术有限公司 | 基于客户端网关的数据聚合方法及装置 |
CN111258810A (zh) * | 2020-01-09 | 2020-06-09 | 广东小天才科技有限公司 | 一种切换数据源的实现方法、系统、终端设备和存储介质 |
CN111290865A (zh) * | 2020-02-10 | 2020-06-16 | 腾讯科技(深圳)有限公司 | 一种服务调用方法、装置、电子设备和存储介质 |
CN111431962A (zh) * | 2020-02-20 | 2020-07-17 | 北京邮电大学 | 基于情景感知计算的跨域资源接入物联网服务发现方法 |
Non-Patent Citations (2)
Title |
---|
MICHEL BARBEAU: ""SERVICE DISCOVERY IN A MOBILE AGENT API USING SLP"", 《SEAMLESS INTERCONNECTION FOR UNIVERSAL SERVICES. GLOBAL TELECOMMUNICATIONS CONFERENCE》 * |
张玉玲: ""Web服务发现与调用技术的研究与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113014560A (zh) * | 2021-02-18 | 2021-06-22 | 欧冶云商股份有限公司 | 一种dubbo服务动态调用方法、计算机设备和存储介质 |
CN114866479A (zh) * | 2022-04-24 | 2022-08-05 | 中电万维信息技术有限责任公司 | 一种基于服务网关的业务融合方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10623476B2 (en) | Endpoint management system providing an application programming interface proxy service | |
CN111092877B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
US9961129B2 (en) | Business transaction correlation with client request monitoring data | |
CN108494860B (zh) | Web访问系统、用于客户端的web访问方法和装置 | |
CN111722947A (zh) | 服务调用方法及系统 | |
CN104301443A (zh) | 一种在web页面上调用端能力接口的方法和系统 | |
CN109086158B (zh) | 一种异常原因分析方法、装置及服务器 | |
CN110187877B (zh) | 图标获取方法及装置、系统、电子设备、存储介质 | |
CN111988398A (zh) | 一种数据获取方法、api网关、介质 | |
US11665247B2 (en) | Resource discovery agent computing device, software application, and method | |
CN105516333A (zh) | 一种基于网页的交互方法和系统 | |
CN113127335A (zh) | 一种系统测试的方法和装置 | |
US20230336636A1 (en) | Systems and methods for tracking user access across web domains | |
ZA200903243B (en) | A method of processing a credit application | |
CN109005163B (zh) | 一种http动态请求服务调用方法 | |
CN112333270B (zh) | 一种微服务动态路由的方法及系统 | |
CN114301970B (zh) | 服务调用方法、装置、电子设备及存储介质 | |
CN113709177B (zh) | 一种处理报文的方法及外调网关 | |
CN111338928A (zh) | 基于chrome浏览器测试的方法及装置 | |
CN114500484A (zh) | 页面渲染方法、装置、电子设备及可读介质 | |
KR100798916B1 (ko) | 웹 서비스 기반 개방형 api를 지원하는 애플리케이션서버에서 통신망 이벤트 통보 장치 및 그 방법 | |
US20110320527A1 (en) | Method and system for managing a web-domain request | |
CN113779122A (zh) | 导出数据的方法和装置 | |
CN112231566A (zh) | 信息推送方法、装置、系统和可读存储介质 | |
CN111949472A (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 |
Application publication date: 20201124 |
|
RJ01 | Rejection of invention patent application after publication |