CN115344331B - 基于城市大脑一网统管的接口数据动态提取方法及装置 - Google Patents

基于城市大脑一网统管的接口数据动态提取方法及装置 Download PDF

Info

Publication number
CN115344331B
CN115344331B CN202211260799.9A CN202211260799A CN115344331B CN 115344331 B CN115344331 B CN 115344331B CN 202211260799 A CN202211260799 A CN 202211260799A CN 115344331 B CN115344331 B CN 115344331B
Authority
CN
China
Prior art keywords
interface
message
data
party api
party
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
Application number
CN202211260799.9A
Other languages
English (en)
Other versions
CN115344331A (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.)
Hangzhou City Brain Co ltd
Original Assignee
Hangzhou City Brain 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 Hangzhou City Brain Co ltd filed Critical Hangzhou City Brain Co ltd
Priority to CN202211260799.9A priority Critical patent/CN115344331B/zh
Publication of CN115344331A publication Critical patent/CN115344331A/zh
Application granted granted Critical
Publication of CN115344331B publication Critical patent/CN115344331B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

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

本发明提供一种基于城市大脑一网统管的接口数据动态提取方法及装置,该方法包括:基于预先配置的每一第三方API接口的接口信息,定时调用第三方API接口以获取其接口数据。判断每一第三方API接口的接口数据是否发生变动,将发生变动的第三方API接口的当前接口数据异步存入消息队列,异步处理接口数据。解析消息队列内更新的消息以获得与该消息对应的第三方API接口的接口数据;基于每一业务逻辑所需的且已预先配置的提取规则从解析后的第三方API接口的接口数据中动态提取所需的目标数据;其中,部分第三方API接口的接口数据被多个业务逻辑动态提取;根据每一业务逻辑所需的且已预先配置的计算规则对提取的目标数据进行处理。

Description

基于城市大脑一网统管的接口数据动态提取方法及装置
技术领域
本申请涉及互联网应用技术领域,且特别涉及一种基于城市大脑一网统管的接口数据动态提取方法及装置。
背景技术
随着业务的发展,不同系统或应用之间的数据资源需要进行交互。当前大多数系统之间的数据资源交互是通过HTTP请求的方式直接调用第三方API接口(ApplicationProgramming Interface,应用程序编程接口)来获取所需数据后进行处理转换,之后再进行业务展示。譬如,A系统需要用到B系统的数据,则A系统直接调用B系统上的第三方API接口。然后根据A系统自身的业务需求,对从B系统获取的接口数据格式进行改造以符合自己的业务展示需要。这种对接方式对于系统之间的数据交互比较少的情况是可行的。但如果需要交互的系统比较多(如除了B系统外还需要跟C、D、E等系统进行交互)且每个交互系统所对接的第三方API接口也较多,若存在几十甚至上百个第三方API接口需要对接,那么这种对接方式将会产生巨大的工作量。即使开发过程中封装做的比较好,也存在大量的重复性工作;譬如,A系统内各子系统在对接外部系统数据源时,需求的重复会导致某一第三方API接口被重复接入,不仅增加了各子系统的开发成本,同时对于数据的解析亦是重复的。此外,第三方API接口对接完成后的后期维护工作量也是巨大的,第三方API接口一旦有变更,则需要重新对接开发。
此外,这种对方方式还大量地依赖第三方API接口的稳定性,当其中某一个第三方API接口或者多个第三方API接口响应超或报错时,会直接影响到整个系统。
发明内容
本发明为了克服现有技术的至少一个不足,提供一种基于城市大脑一网统管的接口数据动态提取方法及装置。
为了实现上述目的,本发明提供一种基于城市大脑一网统管的接口数据动态提取方法,其包括:
基于预先配置的每一第三方API接口的接口信息,定时调用第三方API接口以获取其接口数据;
判断每一第三方API接口的接口数据是否发生变动,将发生变动的第三方API接口的当前接口数据异步存入消息队列,异步处理接口数据;将当前接口数据存入消息队列的步骤包括:定义描述消息属性的消息传输载体,消息传输载体包含消息内容、消息ID及消息发送时间;对发生变动的第三方API接口的当前接口数据进行加密,生成与其对应的唯一消息ID;将发生变动的第三方API接口的当前接口数据作为消息内容,将消息ID、消息内容以及消息发送时间放入消息传输载体;将消息传输载体转换成字节码的形式放入消息队列中;
解析消息队列内更新的消息以获得该消息对应的第三方API接口的接口数据;从消息队列中获取字节码形式的消息并将字节码转换成消息传输载体;从消息载体中解析还原消息ID、作为消息内容的接口数据以及消息发送时间;
基于每一业务逻辑所需的且已预先配置的提取规则从解析还原后的第三方API接口的接口数据中动态提取所需的目标数据;其中,部分第三方API接口的接口数据被多个业务逻辑动态提取;
根据每一业务逻辑所需的且已预先配置的计算规则对提取的目标数据进行处理。
根据本发明的一实施例,基于预先配置的每一第三方API接口的接口信息,调用第三方API接口以获取其接口数据的步骤包括:
获取预先配置的每一第三方API接口的接口信息,接口信息包括接口地址、接口请求类型、接口鉴权方式、接口请求入参以及接口所归属的第三方;
将每一第三方API接口的接口信息组装成相应的HTTP调用请求;
根据API接口所归属的第三方获取相应的连接器;
将选取连接器后的每一HTTP调用请求放入线程池异步执行以并发调用多个第三方API接口。
根据本发明的一实施例,在组装形成HTTP调用请求时:
获取归属方相同的多个第三方API接口的接口信息;
将获取的多个第三方API接口的接口信息组装成一个HTTP调用请求。
根据本发明的一实施例,将所有第三方API接口所提供的鉴权方式进行分类;对于每一种鉴权方式封装形成一对应的连接器;在组装成HTTP调用请求后根据所调用的第三方API接口的接口鉴权方式选择对应的连接器以实现连接器复用。
根据本发明的一实施例,判断每一第三方API接口的接口数据是否发生变动包括:
从缓存中提取上一次调用该第三方API接口所更新得到的历史接口数据;
基于该第三方API接口的当前接口数据和历史接口数据判断该第三方API接口数据是否发生变动。
根据本发明的一实施例,在解析消息队列内更新的消息时,实时监听消息队列并将消息队列内更新的消息解析还原为对应的第三方API接口的接口数据。
根据本发明的一实施例,基于子系统业务逻辑所获得的多个提取规则,历遍规则列表中的每一提取规则以获取相应的目标数据;提取规则包括正则提取和动态代码提取。
另一方面,本发明还提供一种基于城市大脑一网统管的接口数据动态提取装置,其包括API采集单元和数据提取单元;API采集单元包括数据获取模块、消息队列模块以及解析模块,数据提取单元包括目标数据提取模块和计算模块。
数据获取模块基于预先配置的每一第三方API接口的接口信息,定时调用第三方API接口以获取其接口数据;
消息队列模块判断每一第三方API接口的接口数据是否发生变动,将发生变动的第三方API接口的当前接口数据异步存入消息队列,异步处理接口数据;消息队列模块将当前接口数据存入消息队列的步骤包括:定义描述消息属性的消息传输载体,消息传输载体包含消息内容、消息ID及消息发送时间;对发生变动的第三方API接口的当前接口数据进行加密,生成与其对应的唯一消息ID;将发生变动的第三方API接口的当前接口数据作为消息内容,将消息ID、消息内容以及消息发送时间放入消息传输载体;将消息传输载体转换成字节码的形式放入消息队列中;
解析模块解析消息队列内更新的消息以获得该消息对应的第三方API接口的接口数据;解析模块从消息队列中获取字节码形式的消息并将字节码转换成消息传输载体;从消息载体中提取消息ID、作为消息内容的接口数据以及消息发送时间;
目标数据提取模块基于每一业务逻辑所需的且已预先配置的提取规则从解析还原后的第三方API接口的接口数据中动态提取所需的目标数据;其中,部分第三方API接口的接口数据被多个业务逻辑动态提取;
计算模块根据每一业务逻辑所需的且已预先配置的计算规则对提取的目标数据进行处理。
根据本发明的一实施例,API采集单元还包括调度任务模块,数据获取模块基于调度任务模块所发布的任务定时调用第三方API接口。
另一方面,本发明还提供一种计算机可读存储介质,计算机可读存储介质存储计算机指令,计算机指令使计算机执行上述任一项基于城市大脑一网统管的接口数据动态提取方法的步骤。
综上所述,基于城市大脑一网统管的接口数据动态提取方法及装置中,业务系统对接的多个外部第三方API接口的接口数据统一收口更新于消息队列内,每一业务逻辑基于预设的提取规则从消息队列内动态地获取与提取规则相对应的目标数据并基于每一业务逻辑的计算规则对目标数据进行处理。本发明提供的数据动态提取方法中,业务逻辑子系统并不直接调用多个外部第三方API接口,基于消息队列的多个第三方API接口的统一接入不仅有效避免了第三方API接口的重复接入且各子系统上无需进行接口的开发和部署,大大降低了接口的对接成本和后期的维护成本。此外,本发明还实现了第三方API接口数据的对接与具体业务展示相解耦,提高业务系统的稳定性;且灵活的规则配置,可实现动态的接口数据提取,满足不同情况下的业务数据格式需求。
为让本发明的上述和其它目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合附图,作详细说明如下。
附图说明
图1所示为本发明一实施例提供的基于城市大脑一网统管的接口数据动态提取方法的流程示意图。
图2所示为本发明一实施例提供的基于城市大脑一网统管的接口数据动态提取方法的详细流程示意图。
图3所示为图2中步骤S203的具体流程图。
图4所示为图2中步骤S210的具体流程图。
图5所示为本发明一实施例提供的基于城市大脑一网统管的接口数据动态提取装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面参考图1描述根据本发明实施例的基于城市大脑一网统管的接口数据动态提取方法,该方法包括以下步骤:
步骤S101:基于预先配置的每一第三方API接口的接口信息,定时调用第三方API接口以获取其接口数据。为了提高吞吐量,在调用时采用线程池的方式对多个第三方API接口进行并发调用,以快速获取多个第三方API接口的接口数据。
步骤S102:判断每一第三方API接口的接口数据是否发生变动,将发生变动的第三方API接口的当前接口数据异步存入消息队列。该步骤实现了接口数据的异步处理,功能解耦,流量削锋,提高系统并发;相比于串行和并行处理,异步处理可以减少处理的时间,减轻系统测压力。消息队列可以通过流量削峰控制流量,避免流量过大而引起应用系统崩溃。对于未发生变动的接口数据则抛弃该次请求。该设置可大大减小后续步骤对不必要的无效接口数据的解析,提高运行速度。具体而言,对于步骤S102而言,其包括:
定义描述消息属性的消息传输载体,消息传输载体包含消息内容、消息ID及消息发送时间;所述消息传输载体可以为bytebuf,消息发送时间指的是消息放入队列的时间,基于该消息发送时间,后面流程处理消息时可得知该消息是什么时间发送(即放入队列的)的。然而,本发明对此不作任何限定。
对发生变动的第三方API接口的当前接口数据进行加密,生成与其对应的唯一消息ID。加密的方式可以采用Message-Digest Algorithm 5等加密算法。
之后,将发生变动的第三方API接口的当前接口数据作为消息内容,将消息ID、消息内容以及消息发送时间放入消息传输载体;将消息传输载体转换成字节码的形式放入消息队列中。
步骤S103:解析消息队列内更新的消息以获得该消息对应的第三方API接口的接口数据。具体而言,在解析消息队列内更新的消息时,实时监听消息队列并将消息反序列化后解析还原呈该第三方API接口的接口数据。具体而言,从消息队列中获取字节码形式的消息并将字节码转换成消息传输载体;从消息载体中解析还原消息ID、作为消息内容的接口数据以及消息发送时间。
步骤S104:基于每一业务逻辑所需的且已预先配置的提取规则从解析后的第三方API接口的接口数据中动态提取所需的目标数据;其中,部分第三方API接口的接口数据可被多个业务逻辑动态提取,从而实现功能解耦。功能解耦是指多个业务逻辑可通过消息队列对相同的消息进行处理,业务逻辑之间相互独立、互不影响,可避免代码的重构带来适配的额外开销。所述提取规则包含正则提取、动态代码提取等规则,在目标数据提取时,历遍提取规则表,基于每一提取规则动态获取满足其要求的目标数据。
步骤S105:根据每一业务逻辑所需的且已预先配置的计算规则对提取的目标数据进行处理。详细的,根据计算规则将步骤S140所述提取的正常的目标数据进行计算加工,生成个性化所述目标数据。而当目标数据异常不符合规范,则会对目标数据进行柔性处理;所述柔性处理是指对异常目标数据,按照规则进行合理化处理。比如目标数据为“null”或空,则会处理成“N/A”。
基于本实施例提供的基于城市大脑一网统管的接口数据动态提取方法,业务子系统在获取所需接口数据时只需预先配置好所需的第三方API接口的接口地址和请求参数,系统即会定时调用所需的第三方API接口并将调用的数据收口更新于统一的消息队列中。之后,只需根据预设的提取规则从消息队列的接口数据中动态提取所需的目标数据并根据计算规则对目标数据进行计算即可,业务子系统上无需进行任何接口对接的开发和部署,不仅大大降低了第三方API接口的对接成本和维护成本。于此同时,第三方API接口的定时调用和基于消息队列的规则提取实现了消息产生和消息消费的异步处理,大大增加了吞吐量、提高程序解析效率,有效避免了因一个或部分第三方API接口超时(或报错)而影响整个业务系统,减弱了业务系统对外部第三方API接口的依赖性,提高了业务系统的稳定性。此外,基于消息队列的统一收口更新还有效避免了因需求重复而导致的第三方API的重复接入。
本本实施例提供的基于城市大脑一网统管的接口数据动态提取方法主要解决对接第三方API接口时产生的巨大工作量以及系统依赖三方API接口而产生的不稳定性。本实施例可以在不用改动业务系统端项目代码的情况下,通过预先规则配置,对API接口中目标数据进行动态提取。其中规则配置,包含规则提取、动态代码提取等多种动态规则脚本方式,可以灵活多变的对API接口中的目标数据进行提取。同时,通过计算规则对提取的目标数据进行二次计算以满足个性化数据处理需求。此外,本实施例对提取的目标数据,会进行持久化处理,进而摆脱对第三方API接口的依赖。即使第三方API接口返回数据有问题,也会对提取的异常目标数据根据规则进行柔性处理,进而保持系统稳定。
下面以图2所示的具体的实施例对本方法进行详细描述,可以理解的是,下述描述仅出于示例目的,根据本发明的实施例不限于此。此外,图2所示的实施例中仅仅展示了业务系统调用其中一个第三方API接口的流程示意图,对于整个业务系统而言,其可同时并发调用多个第三方API接口。
步骤S201:获取配置的第三方API接口的接口信息。具体的,本实施例从数据库中获取预先配置好的第三方API接口的接口信息,接口信息主要包括:接口地址、接口请求类型、接口鉴权方式、接口请求入参以及所归属的第三方。
步骤S202:判断第三方API接口信息是否存在;具体而言,通过判断步骤S201中获取配置的第三方接口的接口信息是否为空来判断该第三方API接口是否存在。若不存在则结束该第三方API接口的调用流程;若存在则继续执行步骤S203。
步骤S203:调用第三方API接口以获取其接口数据;即基于步骤S201所预先配置的第三方API接口的接口信息来调用相应的第三方API接口。于本实施例中,将步骤S201中获取的第三API接口的接口信息进行组装,然后执行HTTP请求以获取接口数据。可选地,下面对上述步骤S203给出一种处理方式,请详见图3,图3是本申请实施例提供的步骤S203的流程图。
步骤S203-1:根据第三方API接口的接口信息组装HTTP请求。具体地,本实施例获取归属方相同的多个第三方API接口的接口信息;之后,将获取的多个第三方API接口的接口信息中的接口地址、接口请求类型、接口请求入参组装成一个HTTP调用请求以实现归属方相同的多个第三方API接口的调用,以提高调用的速率。然而,本发明对此不作任何限定。于其它实施例中,也可单独将每一个第三方API接口的接口信息进行组装,形成独立的HTTP调用请求。
步骤S203-2:根据不同API接口所归属的第三方获取相应的连接器。根据接口信息中所归属的第三方,选择相应的连接器,所述连接器是第三方API接口提供方的鉴权方式的封装,一次封装可永久重复使用。为方便进行统一鉴权,优选的,本实施例将所有第三方API接口所提供的鉴权方式进行分类;对于每一种鉴权方式封装形成一对应的连接器。在组装成HTTP调用请求后根据所调用的第三方API接口的接口鉴权方式选择对应的连接器以实现连接器复用。即多个鉴权方式相同的第三方可共用统一封装的连接器,简化调用第三方API接口时鉴权的开发量。
步骤S203-3:将组装的HTTP调用请求放入线程池异步执行以获取第三方API接口的接口数据。本实施例主要是采用线程池的方式,将组装的HTTP请求进行异步执行,每个线程至少处理一个HTTP请求,多线程执行提高服务处理数据的能力。
步骤S204:判断调用所返回的第三方API接口数据是否正常。具体的,获得调用的第三方API接口的接口数据后,基于约定的数据格式规则对接口数据进行判断。若数据格式正常则表征所返回的数据正常,执行步骤S205。若判断表明数据格式不正常则结束该第三方API接口的本次调用。
步骤S205:从缓存中获取上一次调用该第三方API接口所得到的历史接口数据。所述历史接口数据是基于上一次调用该第三方API接口时步骤S207所存入的消息。
步骤S206:判断第三方API接口的接口数据是否发生变动。具体的,比对步骤S205从缓存中获取的第三方API接口的历史接口数据和步骤S203获取的当前调用第三方API接口所获得的当前接口数据以判断接口数据是否发生变动。若数据发生变动则执行步骤S207;若未发生变动则结束该第三方API接口的本次调用。为提高数据的安全性,优选的,在比对之前对历史接口数据和当前接口数据均采用相同的加密算法进行加密,通过比较加密后的数据来判断该第三方API接口的接口数据实发发生变动。
步骤S207:将发生变动的第三方API接口的当前接口数据异步放入消息队列和缓存。于本实施例中,将第三方API接口的接口数据按照约定格式(如通过序列化的形式)组装成消息,然后将消息放入消息队列。具体而言,对发生变动的第三方API接口的当前接口数据进行加密,生成与其对应的唯一消息ID。加密的方式可以采用Message-DigestAlgorithm 5等加密算法。之后,将发生变动的第三方API接口的当前接口数据作为消息内容,将消息ID、消息内容以及消息发送时间放入预先定义的描述了消息的属性的消息传输载体中,如ByteBuf。最后,将消息传输载体转换成字节码的形式放入消息队列中。
步骤208:解析消息队列中更新的消息。于本实施例中,该步骤无需触发,消息队列内有消息更新即进行解析。具体而言,该步骤包括:监听消息队列;获取消息队列内更新的消息;将消息队列中的消息按照原数据格式反解析(如反序列化)以还原成该第三方API接口的接口数据。具体而言,从消息队列中获取字节码形式的消息并将字节码转换成消息传输载体;从消息载体中提取消息ID、作为消息内容的接口数据以及消息发送时间。
步骤S209:获取每一业务子系统基于其功能需求所预先配置的提取规则和计算规则,所述提取规则包含正则提取、动态代码提取等多种规则类型。
步骤S210:根据提取规则从步骤S208所还原的第三API接口的接口数据中动态提取目标数据,其中,部分第三方API接口的接口数据可被多个业务逻辑动态提取,从而实现功能解耦。可选的,下面对上述步骤S210给出一种处理方式,详见图4,图4是本申请实施例提供的步骤210的流程图。
步骤S210-1:遍历规则列表;所述规则列表内包含了至少一个业务子系统所需的且预先配置的提取规则。
步骤S210-2:根据不同的提取规则类型(如规则提取或动态代码提取),进行相应的目标数据提取。
步骤S211:根据计算规则对步骤S210获取的正常的目标数据进行计算加工,生成个性化目标数据。
步骤S212:当步骤S210获取的目标数据异常不符合预先设定的规范,则会对异常的目标数据进行柔性处理;所述柔性处理是指对异常的目标数据,按照预先设定的规则进行合理化处理,如当目标数据为“null”或空,则会处理成“N/A”。
与上述基于城市大脑一网统管的接口数据动态提取方法相对应的,本实施例还提供一种基于城市大脑一网统管的接口数据动态提取装置,如图5所述,该装置包括:API采集单元100和数据提取单元200。API采集单元100包括数据获取模块11、消息队列模块12以及解析模块13;数据提取单元200包括目标数据提取模块21和计算模块22。
对于API采集单元100而言:数据获取模块11基于预先配置的每一第三方API接口的接口信息,定时调用第三方API接口以获取其接口数据,其具体的步骤如本实施例中步骤S201至步骤S204。消息队列模块12判断每一第三方API接口的接口数据是否发生变动,将发生变动的第三方API接口的当前接口数据异步存入消息队列,异步处理接口数据;其具体的步骤如本实施例中步骤S205至步骤S207。解析模块13解析消息队列内更新的消息以获得第三方API接口的接口数据,其具体的步骤如本实施例中步骤S208。
对于数据提取单元200而言:目标数据提取模块21基于每一业务逻辑所需的且已预先配置的提取规则从解析后的多个第三方API接口的接口数据中动态提取所需的目标数据;其中,部分第三方API接口的接口数据被多个业务逻辑动态提取;其具体的步骤如本实施例中步骤S209至步骤S210。计算模块22根据每一业务逻辑所需的且已预先配置的计算规则对提取的目标数据进行处理,其具体的步骤如本实施例中步骤S211至步骤S212。
于本实施例中,API采集单元100还包括调度任务模块10,数据获取模块11基于调度任务模块10所发布的任务定时调用第三方API接口。
需要说明的是,上述实施例所提供的装置与上述实施例所提供的方法属于同一构思,其中各个模块执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。
另一方面,本实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述基于城市大脑一网统管的接口数据动态提取方法实施例中相应内容。
综上所述,基于城市大脑一网统管的接口数据动态提取方法及装置中,业务系统对接的多个外部第三方API接口的接口数据统一收口更新于消息队列内,每一业务逻辑基于预设的提取规则从消息队列内动态地获取与提取规则相对应的目标数据并基于每一业务逻辑的计算规则对目标数据进行处理。本发明提供的数据动态提取方法中,业务逻辑子系统并不直接调用多个外部第三方API接口,基于消息队列的多个第三方API接口的统一接入不仅有效避免了第三方API接口的重复接入且各子系统上无需进行接口的开发和部署,大大降低了接口的对接成本和后期的维护成本。此外,本发明还实现了第三方API接口数据的对接与具体业务展示相解耦,提高业务系统的稳定性;且灵活的规则配置,可实现动态的接口数据提取,满足不同情况下的业务数据格式需求。
虽然本发明已由较佳实施例揭露如上,然而并非用以限定本发明,任何熟知此技艺者,在不脱离本发明的精神和范围内,可作些许的更动与润饰,因此本发明的保护范围当视权利要求书所要求保护的范围为准。

Claims (9)

1.一种基于城市大脑一网统管的接口数据动态提取方法,其特征在于,包括:
基于预先配置的每一第三方API接口的接口信息,定时调用第三方API接口以获取其接口数据,且调用时无需进行任何接口对接的开发和部署;该步骤包括:获取预先配置的每一第三方API接口的接口信息,所述接口信息包括接口地址、接口请求类型、接口鉴权方式、接口请求入参以及接口所归属的第三方;将所有第三方API接口所提供的鉴权方式进行分类;对于每一种鉴权方式封装形成一对应的连接器;在将每一第三方API接口的接口信息组装成相应的HTTP调用请求后根据所调用的第三方API接口的接口鉴权方式选择对应的连接器以实现连接器复用;
判断每一第三方API接口的接口数据是否发生变动,将发生变动的第三方API接口的当前接口数据异步存入消息队列,异步处理接口数据;将当前接口数据存入消息队列的步骤包括:定义描述消息属性的消息传输载体,所述消息传输载体包含消息内容、消息ID及消息发送时间;对发生变动的第三方API接口的当前接口数据进行加密,生成与其对应的唯一消息ID;将发生变动的第三方API接口的当前接口数据作为消息内容,将消息ID、消息内容以及消息发送时间放入消息传输载体;将消息传输载体转换成字节码的形式放入消息队列中;
解析消息队列内更新的消息以获得该消息对应的第三方API接口的接口数据;从消息队列中获取字节码形式的消息并将字节码转换成消息传输载体;从消息载体中解析还原消息ID、作为消息内容的接口数据以及消息发送时间;
基于每一业务逻辑所需的且已预先配置的提取规则从解析还原后的第三方API接口的接口数据中动态提取所需的目标数据;其中,部分第三方API接口的接口数据被多个业务逻辑动态提取;
根据每一业务逻辑所需的且已预先配置的计算规则对提取的目标数据进行处理。
2.根据权利要求1所述的基于城市大脑一网统管的接口数据动态提取方法,其特征在于,基于预先配置的每一第三方API接口的接口信息,调用第三方API接口以获取其接口数据的步骤包括:
获取预先配置的每一第三方API接口的接口信息,所述接口信息包括接口地址、接口请求类型、接口鉴权方式、接口请求入参以及接口所归属的第三方;
将每一第三方API接口的接口信息组装成相应的HTTP调用请求;
根据API接口所归属的第三方获取相应的连接器;
将选取连接器后的每一HTTP调用请求放入线程池异步执行以并发调用多个第三方API接口。
3.根据权利要求2所述的基于城市大脑一网统管的接口数据动态提取方法,其特征在于,在组装形成HTTP调用请求时:
获取归属方相同的多个第三方API接口的接口信息;
将获取的多个第三方API接口的接口信息组装成一个HTTP调用请求。
4.根据权利要求1所述的基于城市大脑一网统管的接口数据动态提取方法,其特征在于,判断每一第三方API接口的接口数据是否发生变动包括:
从缓存中提取上一次调用该第三方API接口所更新得到的历史接口数据;
基于该第三方API接口的当前接口数据和历史接口数据判断该第三方API接口数据是否发生变动。
5.根据权利要求1所述的基于城市大脑一网统管的接口数据动态提取方法,其特征在于,在解析消息队列内更新的消息时,实时监听消息队列并将消息队列内更新的消息解析还原为对应的第三方API接口的接口数据。
6.根据权利要求1所述的基于城市大脑一网统管的接口数据动态提取方法,其特征在于,基于子系统业务逻辑所获得的多个提取规则,历遍规则列表中的每一提取规则以获取相应的目标数据;所述提取规则包括正则提取和动态代码提取。
7.一种基于城市大脑一网统管的接口数据动态提取装置,其特征在于,包括API采集单元和数据提取单元;所述API采集单元包括数据获取模块、消息队列模块以及解析模块,所述数据提取单元包括目标数据提取模块和计算模块;
数据获取模块基于预先配置的每一第三方API接口的接口信息,定时调用第三方API接口以获取其接口数据,且调用时无需进行任何接口对接的开发和部署;该步骤包括:获取预先配置的每一第三方API接口的接口信息,所述接口信息包括接口地址、接口请求类型、接口鉴权方式、接口请求入参以及接口所归属的第三方;将所有第三方API接口所提供的鉴权方式进行分类;对于每一种鉴权方式封装形成一对应的连接器;在将每一第三方API接口的接口信息组装成相应的HTTP调用请求后根据所调用的第三方API接口的接口鉴权方式选择对应的连接器以实现连接器复用;
消息队列模块判断每一第三方API接口的接口数据是否发生变动,将发生变动的第三方API接口的当前接口数据异步存入消息队列,异步处理接口数据;消息队列模块将当前接口数据存入消息队列的步骤包括:定义描述消息属性的消息传输载体,所述消息传输载体包含消息内容、消息ID及消息发送时间;对发生变动的第三方API接口的当前接口数据进行加密,生成与其对应的唯一消息ID;将发生变动的第三方API接口的当前接口数据作为消息内容,将消息ID、消息内容以及消息发送时间放入消息传输载体;将消息传输载体转换成字节码的形式放入消息队列中;
解析模块解析消息队列内更新的消息以获得该消息对应的第三方API接口的接口数据;解析模块从消息队列中获取字节码形式的消息并将字节码转换成消息传输载体;从消息载体中提取消息ID、作为消息内容的接口数据以及消息发送时间;
目标数据提取模块基于每一业务逻辑所需的且已预先配置的提取规则从解析还原后的第三方API接口的接口数据中动态提取所需的目标数据;其中,部分第三方API接口的接口数据被多个业务逻辑动态提取;
计算模块根据每一业务逻辑所需的且已预先配置的计算规则对提取的目标数据进行处理。
8.根据权利要求7所述的基于城市大脑一网统管的接口数据动态提取装置,其特征在于,所述API采集单元还包括调度任务模块,所述数据获取模块基于调度任务模块所发布的任务定时调用第三方API接口。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至6中任意一项所述的基于城市大脑一网统管的接口数据动态提取方法的步骤。
CN202211260799.9A 2022-10-14 2022-10-14 基于城市大脑一网统管的接口数据动态提取方法及装置 Active CN115344331B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211260799.9A CN115344331B (zh) 2022-10-14 2022-10-14 基于城市大脑一网统管的接口数据动态提取方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211260799.9A CN115344331B (zh) 2022-10-14 2022-10-14 基于城市大脑一网统管的接口数据动态提取方法及装置

Publications (2)

Publication Number Publication Date
CN115344331A CN115344331A (zh) 2022-11-15
CN115344331B true CN115344331B (zh) 2023-02-10

Family

ID=83957315

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211260799.9A Active CN115344331B (zh) 2022-10-14 2022-10-14 基于城市大脑一网统管的接口数据动态提取方法及装置

Country Status (1)

Country Link
CN (1) CN115344331B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111555955A (zh) * 2020-03-26 2020-08-18 福州慧校通教育信息技术有限公司 一种消息中心实现方法、装置、设备和介质
CN113051086A (zh) * 2021-03-16 2021-06-29 北京房江湖科技有限公司 数据处理方法、装置、电子设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112671933B (zh) * 2021-02-23 2022-04-26 浙江中控技术股份有限公司 一种数据处理方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111555955A (zh) * 2020-03-26 2020-08-18 福州慧校通教育信息技术有限公司 一种消息中心实现方法、装置、设备和介质
CN113051086A (zh) * 2021-03-16 2021-06-29 北京房江湖科技有限公司 数据处理方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN115344331A (zh) 2022-11-15

Similar Documents

Publication Publication Date Title
CN108829560B (zh) 数据监控方法、装置、计算机设备及存储介质
CN110515944B (zh) 基于分布式数据库的数据存储方法、存储介质和电子设备
US11934287B2 (en) Method, electronic device and computer program product for processing data
CN111694620B (zh) 第三方业务的交互方法、装置、设备及计算机存储介质
CN113687958A (zh) 数据处理方法、系统、计算机设备和存储介质
CN111552577B (zh) 防止出现无效请求的方法、存储介质
CN111200606A (zh) 深度学习模型任务处理方法、系统、服务器及存储介质
CN111371585A (zh) 用于cdn节点的配置方法及装置
CN111046245A (zh) 多源异构数据源融合计算方法、系统、设备和存储介质
CN115344331B (zh) 基于城市大脑一网统管的接口数据动态提取方法及装置
CN111930800B (zh) 一种基于云计算的企业大数据分析处理系统
CN112883088B (zh) 一种数据处理方法、装置、设备及存储介质
CN114115884A (zh) 一种编程服务的管理方法以及相关装置
CN115994156A (zh) 用于实时分析数据流的方法和系统
CN114510398A (zh) 异常监测方法、装置、设备、系统和介质
CN113676521A (zh) 业务请求的响应方法、装置及电子设备
CN114301970A (zh) 服务调用方法、装置、电子设备及存储介质
CN114328435A (zh) 一种基于分布式架构的非结构化文件的流处理方法及系统
CN113746851A (zh) 一种支持实时解析grpc请求的代理系统和方法
CN113377376A (zh) 数据包生成方法、数据包生成装置、电子设备及存储介质
CN113918245A (zh) 一种数据调用方法、装置、设备及计算机可读存储介质
CN114595457A (zh) 任务处理方法、装置、计算机设备和存储介质
CN112333262A (zh) 数据更新提示方法、装置、计算机设备及可读存储介质
CN104965909A (zh) 一种动态web内容的请求处理方法
CN116033015B (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
CB03 Change of inventor or designer information

Inventor after: Shen Yongsheng

Inventor before: Shen Yongsheng

Inventor before: Hu Xulei

Inventor before: Yang Wei

Inventor before: Xie Zhuolan

Inventor before: Chen Chongjie

CB03 Change of inventor or designer information
GR01 Patent grant
GR01 Patent grant