API网关
API网关:负责将内部共享服务对外进行发布,提供第三方应用、H5网关和本行SDK(包括iOS SDK、Android SDK和JS SDK)进行调用,遵循OpenAPI3.0标准。
集成模式
模式 | 说明 | 适用场景 |
---|---|---|
通过第三方应用直接调用 | 直接通过网关api进行服务调用,由第三方应用进行用户交互界面开发。 | 最为开放的模式,对于第三方应用的开发框架无依赖或干扰,集成难度最低,并且适用于第三方应用服务端进行调用。 |
通过JS SDK进行调用 | 第三方应用集成平台的JS SDK进行调用,简化第三方应用的开发。 | 适用于第三方应用为混编应用或者微信小程序等类似web应用,集成开放性较高,并且与开发语言无关 |
通过iOS、Android SDK进行调用 | 第三方应用集成平台的原生SDK进行调用,简化第三方应用的开发,并且安全性上得到保证 | 适用于第三方应用为原生开发架构的情况下进行调用,有原生应用的关系,安全性最高 |
通过h5网关进行调用 | 直接或者间接访问H5网关,将用户交互权利移交给平台,由平台来完成该项业务的流程,此调用方式能与其他调用方式相结合 | 适用于用户交互负责度高,并且具有较强技术和安全要求的场景之上,例如开户及绑卡流程等。 |
调用流程
通过第三方应用直接调用
第三方应用可以直接通过平台提供的OpenAPI进行调用,提供最终用户的操作界面等由第三方应用自行完成
sequenceDiagram
第三方应用 ->> OpenAPI网关 : 服务请求()
OpenAPI网关 ->> OpenAPI网关 : 黑白名单控制()
OpenAPI网关 ->> OpenAPI网关 : 服务检权认证()
OpenAPI网关 ->> OpenAPI网关 : 服务流量控制()
OpenAPI网关 ->> OpenAPI网关 : 服务熔断器()
OpenAPI网关 ->> 共享服务 : 服务请求转发()
共享服务 -->> OpenAPI网关 : 服务应答()
OpenAPI网关 -->> 第三方应用: 应答返回()
OpenAPI网关 -x 商户管理服务 : 异步MQ调用流水转发()
通过JS SDK进行调用
第三方应用通过集成平台的JS SDK进行调用,简化第三方应用的开发
sequenceDiagram
第三方应用 ->> 平台JS SDK:本地函数调用
平台JS SDK ->> OpenAPI网关 : 服务请求()
OpenAPI网关 ->> OpenAPI网关 : 黑白名单控制()
OpenAPI网关 ->> OpenAPI网关 : 服务检权认证()
OpenAPI网关 ->> OpenAPI网关 : 服务流量控制()
OpenAPI网关 ->> OpenAPI网关 : 服务熔断器()
OpenAPI网关 ->> 共享服务 : 服务请求转发()
共享服务 -->> OpenAPI网关 : 服务应答()
OpenAPI网关 -->> 平台JS SDK: 应答返回()
平台JS SDK -->> 第三方应用: 调用返回()
OpenAPI网关 -x 商户管理服务 : 异步MQ调用流水转发()
通过iOS、Android SDK进行调用
第三方应用通过集成平台原生SDK进行调用,简化第三方应用的开发
sequenceDiagram
第三方应用 ->> 原生(iOS\Android) SDK:本地函数调用
原生(iOS\Android) SDK ->> OpenAPI网关 : 服务请求()
OpenAPI网关 ->> OpenAPI网关 : 黑白名单控制()
OpenAPI网关 ->> OpenAPI网关 : 服务检权认证()
OpenAPI网关 ->> OpenAPI网关 : 服务流量控制()
OpenAPI网关 ->> OpenAPI网关 : 服务熔断器()
OpenAPI网关 ->> 共享服务 : 服务请求转发()
共享服务 -->> OpenAPI网关 : 服务应答()
OpenAPI网关 -->> 原生(iOS\Android) SDK: 应答返回()
原生(iOS\Android) SDK -->> 第三方应用: 调用返回()
OpenAPI网关 -x 商户管理服务 : 异步MQ调用流水转发()
通过h5网关进行调用
直接或者间接通过H5网关进行调用
间接调用
sequenceDiagram
第三方应用 ->> 平台SDK(JS或原生):本地函数调用
平台SDK(JS或原生) ->> H5网关:http get请求调用,并移交webviewer权限
H5网关 ->> OpenAPI网关 : 服务请求()
OpenAPI网关 ->> OpenAPI网关 : 黑白名单控制()
OpenAPI网关 ->> OpenAPI网关 : 服务检权认证()
OpenAPI网关 ->> OpenAPI网关 : 服务流量控制()
OpenAPI网关 ->> OpenAPI网关 : 服务熔断器()
OpenAPI网关 ->> 共享服务 : 服务请求转发()
共享服务 -->> OpenAPI网关 : 服务应答()
OpenAPI网关 -->> H5网关: 应答返回()
H5网关 -->> 第三方应用: 回调方法()
OpenAPI网关 -x 商户管理服务 : 异步MQ调用流水转发()
直接调用
sequenceDiagram
第三方应用 ->> H5网关:http get请求调用,并移交webviewer权限
H5网关 ->> OpenAPI网关 : 服务请求()
OpenAPI网关 ->> OpenAPI网关 : 黑白名单控制()
OpenAPI网关 ->> OpenAPI网关 : 服务检权认证()
OpenAPI网关 ->> OpenAPI网关 : 服务流量控制()
OpenAPI网关 ->> OpenAPI网关 : 服务熔断器()
OpenAPI网关 ->> 共享服务 : 服务请求转发()
共享服务 -->> OpenAPI网关 : 服务应答()
OpenAPI网关 -->> H5网关: 应答返回()
H5网关 -->> 第三方应用: 回调方法()
OpenAPI网关 -x 商户管理服务 : 异步MQ调用流水转发()
核心功能
功能名 | 说明 |
---|---|
服务发布 | 通过服务定义与服务路由相关功能,进行后端共享服务发布,此管理功能通过OpenAPI管理服务实现,有OpenAPI管理平台提供操作入口。 |
服务接入 | 发布遵循OpenAPI 3.0标准的RestFul服务,并支持GET和POST方式。 |
安全控制 | 实现黑白名单等辅助网络控制,并实现基于OpenAPI 3.0标准的安全控制协议。 |
服务鉴权 | 通过读取共享服务鉴权信息对于服务进行权限控制,此信息由用户管理服务进行维护并共享。 |
流量控制 | 以服务为维度,进行基于令牌桶的算法的流量控制。 |
服务熔断 | 以服务、调用方为维度,实现服务熔断机制,单位时间超过了阀值请求数,将进行熔断处理。 |
服务降级 | 以服务为维度,在后端共享不可用的情况下,模拟返回信息。 |
服务路由 | 配置按照服务关键要素进行目标服务路由,转发请求信息。 |
灰度发布 | 通过动态路由方式将部分用户引流到新服务中,以缩小测试范围及影响。 |
服务通知 | 网关服务奖收到的业务请求及信息,通过异步方式通知用户管理服务,用户管理服务将进行单一维度的数据统计和计量。 |
设计要点
安全控制:待续
服务鉴权:待续
流量控制:待续
服务熔断:待续