一种基于SQL的API接口系统及其管理方法与流程

文档序号:30097976发布日期:2022-05-18 11:32阅读:840来源:国知局
一种基于SQL的API接口系统及其管理方法与流程
一种基于sql的api接口系统及其管理方法
技术领域
1.本发明涉及计算机接口技术领域,特别是一种基于sql的api接口系统及其管理方法。


背景技术:

2.api(applicationprogramminginterface,应用程序接口)是一些预先定义的接口(如函数、http接口),或指软件系统不同组成部分衔接的约定,用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问源码,或理解内部工作机制的细节。在数据开发过程中,数据最后往往都以api(application programminginterface)接口的形式提供共享。通常开发一个api接口,需要熟悉java等编程语言的程序员,通过jdbc等数据库驱动读取数据库表数据,处理数据,返回一定格式的数据结果来定制开发。对于数据人员而言,开发门槛比较高,而且接口在使用过程中无法跟踪,使用安全性不高。
3.目前对于api快速开发、生成,主要通过用户创建应用,创建应用的同时自动创建数据库;用户创建表模型,设置表模型中的字段;并在创建的数据库中自动创建数据库表;用户根据需求获取内置api或者自行配置api或者从api市场检索合适api,用户将获取的api集成到前端页面代码中,前端页面调用api与数据库进行数据交互。但是该开发方法,存在以下技术缺点:1、对于已经存在的应用,再从创建应用开始去定义api,重复处理,降低了处理效率;2、api支持的数据源也只能是自己创建的固定的一种数据库类型,对于大数据开发而言,往往需要多种异构数据库数据联合查询,应用场景有限;3、接口的安全性控制精度不够以及不够灵活;4、接口只管上线不管下线的状态没有改变,没有形成接口全生命周期管理。


技术实现要素:

4.本发明的目的在于,提供一种基于sql的api接口系统及其管理方法。本发明具有支持多种现有的数据源,扩大应用场景,接口安全性高、对接口全生命周期进行管理的特点。
5.本发明的技术方案:一种基于sql的api接口系统,包括接口开发模块、接口管理模块、接口鉴权模块和接口监控模块,所述接口开发模块的输出端与接口管理模块的输入端连接,接口管理模块的输出端与接口鉴权模块的输入端连接,接口鉴权模块的输出端与接口监控模块的输入端连接,接口监控模块的输出端与接口管理模块的输入端连接;所述接口开发模块用来定义接口信息,经sql获取现有的数据库的异构数据源数据,生成api接口;接口管理模块用来管理生成的api接口以及接口的下线,对api接口进行测试,发布成数据服务;接口鉴权模块用来配置api接口鉴权并在接口调用时读取鉴权信息进行鉴权服务;接口监控模块用来收集、分析接口调用时产生的调用日志,生成监控报告,进一步进行接口管理。
6.前述的一种基于sql的api接口系统中,所述接口开发模块包括数据源定义单元、
函数定义单元和接口定义单元,数据源定义单元包括支持jdbc驱动的数据源;函数定义单元用来封装被调用的函数方法;所述接口定义单元用来利用现有的各种数据源中获取数据,并调用函数处理数据,定义接口的请求类型,统一输出数据,生成api接口。
7.前述的一种基于sql的api接口系统中,所述接口管理模块包括接口列表单元、接口测试单元、接口发布单元和接口下线单元,接口列表单元用来展现目前已经开发的接口,接口测试单元用来对开发完成后的接口进行试运行以及测试,并及时返回结果;接口发布单元用来将接口从开发环境发布到生产环境,包括远程推送和导入导出;接口下线单元用来对不使用的接口进行下线操作,包括物理删除和逻辑删除。
8.前述的一种基于sql的api接口系统中,所述接口鉴权模块包括系统管理单元、鉴权配置单元和鉴权服务单元,系统管理单元用来登记、管理接口的调用系统信息;鉴权配置单元用来配置接口鉴权,形成鉴权配置库;鉴权服务单元用来读取配置接口鉴权信息进行鉴权。
9.前述的一种基于sql的api接口系统中,所述鉴权配置单元包括令牌鉴权、接口验签、黑白名单和接口限流,令牌鉴权用来生成令牌、解析令牌和匹配信息;接口验签用来生成秘钥,下发签名,并验证调用时的请求参数和参数值;黑白名单用来匹配黑白名单ip列表和客户端ip;接口限流用来限制接口的流量。
10.上述的api接口系统的管理方法,包括以下操作步骤:
11.s1、接口开发:根据接口定义信息,从现有的数据库获取数据,生成api接口;
12.s2、接口管理:将生成的api接口进行测试,发布成数据服务,对未使用的接口进行消亡通知处理;
13.s3、接口鉴权:获取调用方的调用请求,对鉴权进行配置得到配置信息,读取配置信息对调用方进行鉴权,鉴权通过之后进行调用;
14.s4、接口监控:收集调用访问日志,分析访问日志,若发现异常则进行报警,产生监控报告,发送到接口管理处进行接口下线管理。
15.前述的api接口系统的管理方法中,所述步骤s1具体为,根据接口定义信息,从各种数据源中通过数据查询引擎的sql获取数据,调用函数进行处理,定义接口的请求类型,以json格式输出查询结果,生成api接口。
16.前述的api接口系统的管理方法中,所述步骤s3的鉴权包括令牌鉴权、接口验签、黑白名单和接口限流,客户端调用api时,依次经过令牌鉴权、接口验签、黑白名单和接口限流,若其中某一个鉴权未通过,则调用失败。
17.前述的api接口系统的管理方法中,所述令牌鉴权的鉴权方法,包括以下步骤:
18.a、判断调用系统是否存在,若不存在,则进行登记,若存在,则直接通过接口鉴权模块的服务端生成令牌给调用方;
19.b、调用方得到令牌调用api,服务端进行令牌判断,若令牌合法,则服务端解析令牌,并获取接口的调用用户角色信息,否则,接口调用失败;
20.c、服务端解析用户角色信息,与接口的调用用户进行匹配,若匹配成功,则接口调用成功,若匹配失败,则接口调用失败。
21.与现有技术相比,本发明本发明采用接口开发模块的自底而上的设计方式,利用现有各种异构数据库,通过sql方式拉取数据,并将数据统一接口处理输出,快速开发成api
接口,支持多种数据源,可以同时处理多个异构数据源的数据和复杂的数据处理逻辑,按统一接口返回,扩大应用场景;不对数据库入侵,只需要有查询权限即可,提高接口开发的效率和质量,降低开发人员接口开发的技术门槛;从原来按天计算的开发周期可以降低到按小时计算,基本1个小时就能开发一个接口;
22.采用接口管理模块管理生成的api接口以及接口的下线;
23.采用接口鉴权模块支持多种鉴权方式灵活组合控制,接口安全性高,每个接口可以定制化配置不同安全级别的验证,根据不同安全性要求,对接口按不同的用户、不同的应用系统,配置不同安全级别的权限,快速配置出满足不同安全级别要求的接口;并对调用方的调用系统统一登记,统一管理接口的使用方,清晰接口的归属,方便后续接口管理和监控;
24.采用接口监控模块对接口使用情况进行跟踪和报警警示。
25.在接口整个有效期内,通过接口调用日志,监控、分析和跟踪每个使用方的接口、未使用接口或者异常访问接口的使用情况,即可以实时发现接口异常,一旦发现异常主动报警,对无使用的接口进行下线或消亡通知处理,并反馈给接口使用方以及管理者,形成生态闭环,对接口从开发到下线整个生命周期进行管理,掌握各阶段信息,降低服务器的使用成本以及开发人员的开发运维成本。
26.在接口开发模块、接口管理模块采用可视化配置界面,所见即所得,方便开发调试,减少逻辑方面的bug。
附图说明
27.图1是本发明的api接口系统结构模块示意图;
28.图2是接口开发的工作流程示意图;
29.图3是令牌鉴权的工作流程示意图;
30.图4是接口验签的工作流程示意图;
31.图5是黑白名单的工作流程示意图;
32.图6是接口限流的工作流程示意图;
33.图7是鉴权组合逻辑的工作流程示意图;
34.图8是接口监控的工作流程示意图。
具体实施方式
35.下面结合实施例对本发明作进一步的说明,但并不作为对本发明限制的依据。
36.实施例。
37.如图1所示,一种基于sql的api接口系统,包括接口开发模块、接口管理模块、接口鉴权模块和接口监控模块,所述接口开发模块的输出端与接口管理模块的输入端连接,接口管理模块的输出端与接口鉴权模块的输入端连接,接口鉴权模块的输出端与接口监控模块的输入端连接,接口监控模块的输出端与接口管理模块的输入端连接;
38.所述接口开发模块用来定义接口信息,利用现有mysql、oracel、postgresql、sqlserver等各种常用数据库,通过sql方式拉取异构数据源数据,生成api接口;接口管理模块用来管理生成的api接口以及接口的下线,对api接口进行测试,发布成数据服务;接口
鉴权模块用来配置api接口鉴权并在接口调用时读取鉴权信息进行鉴权服务;接口监控模块用来收集接口调用时产生的调用日志,通过分析调用日志进行监控跟踪,得知接口使用情况,生成监控报告,通知接口管理员,对接口进行下线等处理,进一步进行接口管理。所述调用日志包括接口信息、调用系统信息、客户端ip、接口返回内容、接口调用时长等相关信息。
39.所述接口开发模块包括数据源定义单元、函数定义单元和接口定义单元,数据源定义单元包括支持jdbc驱动的数据源,比如mysql,oracle,postgresql,sqlserver等数据库;函数定义单元用来封装函数方法,使得在接口定义的时候可以被调用;所述接口定义单元用来从现有的各种数据源中通过数据查询引擎的sql获取数据,并调用公共函数、系统函数、java函数等函数处理数据,定义接口的请求类型,比如get、post等、接口名称、请求路径、请求参数、请求header、路径变量、请求body等参数,通过便捷的调试运行可视化界面,最后以restful方式返回json格式的数据统一输出,生成api接口。接口开发模块的每次代码的修改都会按版本保存,并且对当前版本和历史版本进行了差异比较,很容易进行回滚、维护。
40.所述接口管理模块包括接口列表单元、接口测试单元、接口发布单元和接口下线单元,接口列表单元用来展现目前已经开发的接口,方便后续对接口的查找,修改等维护操作。接口测试单元用来对开发完成后的接口进行试运行以及测试,并及时返回结果,所见即所得;接口发布单元用来将接口从开发环境发布到生产环境,包括远程推送和导入导出;远程推送为配置远程推送方式发布接口,网络互通开发环境与生产环境,导入导出为从开发环境导出接口为json格式,再通过生产环境导入,无需考虑网络情况,使用通用性广。
41.接口下线单元用来对不使用的接口进行下线操作,包括物理删除和逻辑删除。物理删除,即直接删除接口。逻辑删除,即新建一个回收站文件夹,将接口移动到回收站。
42.所述接口鉴权模块包括系统管理单元、鉴权配置单元和鉴权服务单元,系统管理单元用来登记、管理接口的调用系统信息,统一管理调用过接口的系统信息;鉴权配置单元用来配置接口鉴权,形成鉴权配置库;鉴权服务单元用来读取配置接口鉴权信息进行鉴权。
43.所述鉴权配置单元包括令牌鉴权、接口验签、黑白名单和接口限流,可以单独配置,也可以灵活组合配置使用。令牌鉴权用来生成令牌、解析令牌和匹配信息;接口验签用来生成秘钥,下发签名,并验证调用时的请求参数和参数值;黑白名单用来匹配黑白名单ip列表和客户端ip;接口限流用来限制接口的流量。
44.对外开放的api接口都会面临一些安全问题,例如伪装攻击、篡改攻击、重放攻击以及数据信息泄漏的风险。利用api接口验签能方便的防范这些安全问题和风险。接口验签会对具体的请求参数以及参数值进行验证,方式更为严格。
45.黑白名单包括黑名单,白名单。
46.为保障接口在高调用量的时候稳定性,需要对接口进行限流处理,也可以避免一些恶意的攻击行为导致服务挂掉。通过对并发访问/请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务、排队或等待、降级等处理。
47.所述接口监控模块包括分析单元、报告生成单元和报警单元。
48.一种api接口系统的管理方法,包括以下操作步骤:
49.s1、接口开发:根据接口定义信息,从现有的各种数据库中通过数据查询引擎获取数据,调用函数进行数据处理,定义接口的请求类型,以json格式输出查询结果,生成api接口;工作流程如图2所示;
50.s2、接口管理:将生成的api接口进行测试,发布成数据服务,对未使用的接口进行消亡通知处理;
51.s3、接口鉴权:获取调用方的调用请求,对鉴权进行配置得到配置信息,读取配置信息对调用方进行鉴权,鉴权通过之后进行调用;
52.s4、接口监控:收集调用访问日志,分析访问日志,若发现异常则进行报警,产生监控报告,发送到接口管理处进行接口下线管理。工作流程如图8所示。
53.所述步骤s3的鉴权包括令牌鉴权、接口验签、黑白名单和接口限流,客户端调用api时,依次经过令牌鉴权、接口验签、黑白名单和接口限流,若其中某一个鉴权未通过,则调用失败。每种鉴权都可以单独关闭,开启,也可以全部开启或关闭,也可以自由组合开启,未启用的鉴权默认通过。工作流程如图7所示。
54.如图3所示,所述令牌鉴权的鉴权方法,包括以下步骤:
55.a、接口鉴权模块的服务端配置api编码、调用系统、用户角色相关信息,判断调用系统是否存在,若不存在,则登记调用系统,服务端通过用户、密码生成令牌公布给调用方,否存在,服务端通过用户密码生成令牌公布给调用方;
56.b、调用方得到令牌调用api,服务端进行令牌判断,判断令牌是否合法,若令牌合法,则服务端解析令牌,并获取接口的调用用户角色信息(此用户角色在公布令牌给调用方的时候配置),否则,接口调用失败;
57.c、将令牌解析的用户角色信息,与接口的调用用户角色进行匹配,若匹配成功,则接口调用成功,若匹配失败,则接口调用失败。
58.如果令牌泄露,现有的令牌鉴权技术就能被轻松获取接口数据,安全性不高。而本发明增加了一道保险,在令牌解析后需要进一步确认令牌解析出来的用户角色与接口的调用用户角色是否匹配。
59.当令牌泄露时,通过接口监控模块得知异常访问情况,通知管理员进行令牌失效处理,并进行新令牌生成,使在令牌被盗、泄露的时候能远程止损。
60.如图4所示,所述接口验签的鉴权方法,包括以下步骤:
61.a、客户端传递调用系统和api编码,申请签名;
62.b、接口鉴权模块的服务端配置api编码、调用系统、算法生成秘钥,配置请求参数、时间戳生成签名,并且设置相关的生效时间和失效时间;
63.c、客户端调用时集成sdk,生成签名,发送api编码、请求参数、时间戳和签名发送给服务端;
64.d、服务端验证签名、请求参数和时间戳,若验证成功,则进行下一步操作,否则调用失败。
65.验证方式更为严格,安全性更高。
66.如图5所示,所述黑白名单的鉴权方法,包括以下步骤:
67.a、接口鉴权模块的服务端配置api编码、调用系统、黑白名单ip列表、状态信息开闭情况;
68.b、客户端调用api,服务端获取客户端ip与黑白名单ip列表进行匹配;
69.c、若匹配成功,则进行下一步操作,否则调用失败。
70.如图6所示,接口限流的鉴权方法,包括以下步骤:
71.a、接口鉴权模块的服务端配置限流参数,包括api编码、调用系统、令牌速率、预热期时长、预热期单位、获取令牌最大等待时长;
72.b、客户端调用api,生成调用流量;
73.c、服务端获取调用流量,并与限流参数进行比较,判断是否触发限流;
74.d、若触发,则进行限流,否则,进行下一步操作。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1