一种基于SPI可扩展机制的API实时采集方法与流程

未命名 09-11 阅读:156 评论:0

一种基于spi可扩展机制的api实时采集方法
技术领域
1.本发明涉及一种采集方法,更具体的说是涉及一种基于spi可扩展机制的api实时采集方法。


背景技术:

2.能力中心作为企业数字化过程中管理和提供api接口的中央化平台,它提供了统一的api目录和文档,使开发人员能够更轻松地发现、了解和使用api。开发人员无需重复编写和实现相同的功能,而是可以直接使用现有的api,从而节省开发时间和精力,如图1中所示:
3.研发人员在权限中心提供出接口1.0,同时在应用启动的之时,系统会直接调用能力中心提供的注册接口,将完整的接口定义写入到能力中心的数据库中。后续三方的使用者在查看接口信息时,能力中心直接返回数据库中的数据,进行展示。接口更新的策略,类似。
4.在实际的研发过程中,多次发现收集上来的api存在接口遗漏、接口更新不及时等问题,使用方无法充分利用新的功能或无法适应变化的需求,导致了开发进度的延迟和困惑。
5.上述问题的根本原因,是接口的定义数据,为了能够统一的在能力中心进行展示,会将接口数据同步(冗余)到能力中心的应用中。当该接口定义发生变更时,就需要同时修改两个存储的数据,才能够保证接口信息的一致性。但又因为两个存储的物理介质,往往是跨进程、跨机器的,同时修改就可能因为人为遗漏、更新失败、网络抖动等原因失败,导致接口出现不一致,如图2所示:
6.企业平台的权限模块1.0版本中提供了一个基于用户id的查询接口,接口使用上开发者可以通过传入用户的id查询到详细的用户信息。
7.接口发布之后,有外部的三方应用程序依赖于该api来实现用户的登录和查询,该应用程序在发布时与企业平台的api版本1.0进行了集成。
8.在后续的产品迭代中,权限模块提供出2.0版本,将上述接口调整为基于用户名的查询接口。
9.但版本发布之后,应用启动的过程中,因为网络抖动导致同步更新能力中心的接口定义和文档失败
10.此时,三方应用从能力中心获取到的还是1.0版本的接口定义,但实际上运行的已经是2.0版本。这就导致后续应用程序的存量和增量业务报错,业务无法继续流转。


技术实现要素:

11.针对现有技术存在的不足,本发明的目的在于提供一种提供出更准确、更实时的接口定义,快速传达更新和变更的信息的基于spi可扩展机制的api实时采集方法。
12.为实现上述目的,本发明提供了如下技术方案:一种基于spi可扩展机制的api实
时采集方法,包括如下步骤:
13.步骤一,研发人员终端发送新增基于用户id的查询接口1.0的消息至权限中心;步骤二,权限中心在接受到新增基于用户id的查询接口1.0的消息后将接口1.0持久化,然后反馈新增成功消息至研发人员终端;
14.步骤三,使用终端发送接口查看消息至能力中心,能力中心在接受到消息后,向权限中心发送接口查询消息,权限中心在接受到接口查询消息后,进行查询步骤,之后返回接口1.0消息至能力中心,进而通过能力中心反馈至使用终端;
15.步骤四,研发人员终端发送更新基于用户id的查询接口2.0的消息至权限中心;
16.步骤五,权限中心在接受到新增基于用户id的查询接口2.0的消息后将接口2.0持久化,然后反馈更新成功消息至研发人员终端;
17.步骤六,使用终端发送接口查看消息至能力中心,能力中心在接受到消息后,向权限中心发送接口查询消息,权限中心在接受到接口查询消息后,进行查询步骤,之后返回接口2.0消息至能力中心,进而通过能力中心反馈至使用终端。作为本发明的进一步改进,所述步骤三和步骤六中的查询步骤具体包括:
18.步骤三一,当权限中心接受到接口查询消息后,进行参数合法性校验,以对输入参数进行验证和检查的过程,包含数据类型检查、空值检查;
19.步骤三二,进行业务校验,判断参数是否满足业务规则;
20.步骤三三,进行查询参数组装,将外部参数转换成内部可以识别的对象;
21.步骤三四,执行查询逻辑,以传入转换后的参数,调用的底层函数,执行查询逻辑;
22.步骤三五,进行查询结果适配,获取到底层返回的数据,针对本次匹配本次页面的需求,进行适配;
23.步骤三六,将处理后的结果值返回能力中心。
24.作为本发明的进一步改进,所述步骤三四中执行查询逻辑具体步骤为将节点定义成可扩展节点,同时定义出spi接口。
25.作为本发明的进一步改进,所述将节点定义成可扩展节点,同时定义出spi接口的具体步骤为,通过公共接口的apiinfopi服务获取当前分组及子分组信息,包括api信息,然后通过带apidto页面的类别根据api唯一标识查询api详情,并在定义完成之后,将spi接口封装进sdk中,同时提供给各个需要接入的业务方,各业务方在引入该sdk后,实现对应spi接口的detail方法,并且在应用启动之初,使用终端将自己的应用标记和调用参数信息注册到能力中心。
26.作为本发明的进一步改进,所述信息注册请求中,附带的参数包括服务名称、服务域和服务类型,其中,服务名称为模型api,服务领域为isc-tddm-service:38800,服务类型为tddm。
27.本发明的有益效果,通过步骤一至步骤六的设置,便可以使得操作的新增、更新、读取,最终都会落到权限中心的存储上,即整体体系中,接口的定义只会保留一份。不存在数据冗余,也就不会存在数据一致性的问题了。
附图说明
28.图1为现有技术中的api的采集流程示意图;
29.图2为现有无法流转的流程示意图;
30.图3为本发明的采集方法的流程示意图;
31.图4为查询api详情的接口内部逻辑示意图;
32.图5为各业务方在引入该sdk后,实现对应spi接口的detail方法的示意图;
33.图6为使用终端在应用启动之初进行注册的示意图;
34.图7为查询调用的流程示意图。
具体实施方式
35.下面将结合附图所给出的实施例对本发明做进一步的详述。
36.术语解释:
37.api(应用程序编程接口)
38.是一组定义了软件组件或系统之间交互的规则和协议。api允许不同的软件应用程序之间相互通信和交换数据,以实现特定的功能或服务。
39.能力中心
40.用于管理和提供api接口的中央化平台或服务。它为开发人员、合作伙伴或第三方应用程序提供了集中的访问点,以便他们可以查找、调用和使用不同的api。javaspi(服务提供者接口)
41.是jdk内置的一种服务提供发现机制,可以用来启用框架扩展和替换组件,主要是被框架的开发人员使用,比如java.sql.driver接口,其他不同厂商可以针对同一接口做出不同的实现,mysql和postgresql都有不同的实现提供给用户,而java的spi机制可以为某个接口寻找服务实现。java中spi机制主要思想是将装配的控制权移到程序之外,在模块化设计中这个机制尤其重要,其核心思想就是解耦。
42.参照图3至6所示,本实施例的一种基于spi可扩展机制的api实时采集方法,其特征在于:包括如下步骤:
43.步骤一,研发人员终端发送新增基于用户id的查询接口1.0的消息至权限中心;步骤二,权限中心在接受到新增基于用户id的查询接口1.0的消息后将接口1.0持久化,然后反馈新增成功消息至研发人员终端;
44.步骤三,使用终端发送接口查看消息至能力中心,能力中心在接受到消息后,向权限中心发送接口查询消息,权限中心在接受到接口查询消息后,进行查询步骤,之后返回接口1.0消息至能力中心,进而通过能力中心反馈至使用终端;
45.步骤四,研发人员终端发送更新基于用户id的查询接口2.0的消息至权限中心;
46.步骤五,权限中心在接受到新增基于用户id的查询接口2.0的消息后将接口2.0持久化,然后反馈更新成功消息至研发人员终端;
47.步骤六,使用终端发送接口查看消息至能力中心,能力中心在接受到消息后,向权限中心发送接口查询消息,权限中心在接受到接口查询消息后,进行查询步骤,之后返回接口2.0消息至能力中心,进而通过能力中心反馈至使用终端,通过上述步骤一至步骤六的设置,便可实现操作的新增、更新、读取,最终都会落到权限中心的存储上,即整体体系中,接口的定义只会保留一份。不存在数据冗余,也就不会存在数据一致性的问题了,能够提供出更准确、更实时的接口定义,快速传达更新和变更的信息。
48.具体的上述方法在技术实现上分为spi设计和运行机制两块内容。
49.下面进行详细说明:
50.spi设计
51.spi接口的定义,需要基于整个业务流程的分析,同时也考虑各业务实现方的接入现状,进行统一的抽象。
52.在方案的实现过程中,首先对于整个查询流程进行分解,然后分析出各个流程节点中需要进行扩展实现的部分。
53.而在明确了哪些流程节点之后,接下来针对该节点进行抽象,提供出标准的spi接口,它能满足所有接入方的需求,同时也可以将接口信息,完整的展示给使用方。
54.此处以“查询api详情”为例:如图4所示
55.整个”查询api详情”的接口内部逻辑分解如下:
56.1).参数合法性校验:对输入参数进行验证和检查的过程,包含数据类型检查、空值检查等
57.2).业务校验:参数满足特定的业务规则
58.3).查询参数组装:将外部参数,转换成内部可以识别的对象
59.4).执行查询逻辑:传入转换后的参数,调用的底层函数,执行查询逻辑
60.5).查询结果适配:获取到底层返回的数据,针对本次匹配本次页面的需求,进行适配
61.6).结果值返回:将处理后的结果返回。
62.将“执行查询逻辑”节点定义成可扩展节点,同时定义出spi接口:public interface apiinfospiservice{
63./**
64.*获取当前分组及子分组信息,包括api信息
65.*@return
66.*/
67.categorywithapidto page();
68./**
69.*根据api唯一标识查询api详情
70.*@param code
71.*@return
72.*/
73.apiinfodetaildto detail(string code);
74.}
75.定义完成之后,将spi接口封装进sdk中,同时提供给各个需要接入的业务方。各业务方在引入该sdk后,实现对应spi接口的detail方法,如图5所示。
76.在应用启动之初,将自己的应用标记和调用参数注册到能力中心,如图6所示。信息注册请求中,附带的参数配置如下:
77.#对接能力中心配置
78.isc-capc:
79.servicename:模型api
80.servicedomain:isc-tddm-service:38800
81.servicetype:tddm
82.上述参数用于能力中心识别哪些应用已注册,和调用spi的接口路径和配置。
83.运行机制
84.上游接口在调用能力中心的openapi或页面展示时,能力中心通过应用注册上来的标记,明确哪些应用是实现了spi接口。同时通过对应的应用注册上来的配置,发起实际的调用,获取结果,返回给上游业务,如图7所示。
85.以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

技术特征:
1.一种基于spi可扩展机制的api实时采集方法,其特征在于:包括如下步骤:步骤一,研发人员终端发送新增基于用户id的查询接口1.0的消息至权限中心;步骤二,权限中心在接受到新增基于用户id的查询接口1.0的消息后将接口1.0持久化,然后反馈新增成功消息至研发人员终端;步骤三,使用终端发送接口查看消息至能力中心,能力中心在接受到消息后,向权限中心发送接口查询消息,权限中心在接受到接口查询消息后,进行查询步骤,之后返回接口1.0消息至能力中心,进而通过能力中心反馈至使用终端;步骤四,研发人员终端发送更新基于用户id的查询接口2.0的消息至权限中心;步骤五,权限中心在接受到新增基于用户id的查询接口2.0的消息后将接口2.0持久化,然后反馈更新成功消息至研发人员终端;步骤六,使用终端发送接口查看消息至能力中心,能力中心在接受到消息后,向权限中心发送接口查询消息,权限中心在接受到接口查询消息后,进行查询步骤,之后返回接口2.0消息至能力中心,进而通过能力中心反馈至使用终端。2.根据权利要求1所述的基于spi可扩展机制的api实时采集方法,其特征在于:所述步骤三和步骤六中的查询步骤具体包括:步骤三一,当权限中心接受到接口查询消息后,进行参数合法性校验,以对输入参数进行验证和检查的过程,包含数据类型检查、空值检查;步骤三二,进行业务校验,判断参数是否满足业务规则;步骤三三,进行查询参数组装,将外部参数转换成内部可以识别的对象;步骤三四,执行查询逻辑,以传入转换后的参数,调用的底层函数,执行查询逻辑;步骤三五,进行查询结果适配,获取到底层返回的数据,针对本次匹配本次页面的需求,进行适配;步骤三六,将处理后的结果值返回能力中心。3.根据权利要求2所述的基于spi可扩展机制的api实时采集方法,其特征在于:所述步骤三四中执行查询逻辑具体步骤为将节点定义成可扩展节点,同时定义出spi接口。4.根据权利要求3所述的基于spi可扩展机制的api实时采集方法,其特征在于:所述将节点定义成可扩展节点,同时定义出spi接口的具体步骤为,通过公共接口的apiinfopi服务获取当前分组及子分组信息,包括api信息,然后通过带apidto页面的类别根据api唯一标识查询api详情,并在定义完成之后,将spi接口封装进sdk中,同时提供给各个需要接入的业务方,各业务方在引入该sdk后,实现对应spi接口的detail方法,并且在应用启动之初,使用终端将自己的应用标记和调用参数信息注册到能力中心。5.根据权利要求4所述的基于spi可扩展机制的api实时采集方法,其特征在于:所述信息注册请求中,附带的参数包括服务名称、服务域和服务类型,其中,服务名称为模型api,服务领域为isc-tddm-service:38800,服务类型为tddm。

技术总结
本发明公开了一种基于SPI可扩展机制的API实时采集方法,为统一平台采集API接口,提供了一种准实时性和数据一致性极好的解决方案。它参考Java SPI的机制,在流程中统一定义出SPI接口和扩展点,然后由各个接口的提供方实现SPI接口。整个接入过程中,数据只保留在接口的提供方上,不存在数据冗余的问题。而在后续各场景的展示逻辑中,按需调用SPI接口,统一返回给前端展示,提供了更好的数据实时性和数据一致性。据一致性。据一致性。


技术研发人员:王轩 宋杨 秦钢
受保护的技术使用者:杭州指令集智能科技有限公司
技术研发日:2023.07.06
技术公布日:2023/9/9
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐