OpenAPI简介


OpenAPI

一、什么是OpenAPI

一系列技术使网站之间的信息互通

Open = 开放(资源类型、服务对象、展现方式)

API = 应用接口(获取数据、资源、服务,忽略具体实现过程)

所谓开放服务,指把网络上的服务能力封装成一系列 计算机易识别的数据接口开放出去, 供第三方开发者使用,即 OpenAPI(open application programming interface)[3] 。 其 实这并不是一个新概念,在计算机操作系统出现的早期就 已经存在了,但区别在于,当前的开放服务范围更广,开放 的机制也有所不同。

二、OpenAPI产生背景

目前,随着信息量的爆炸式增长,基于内容的单一维度搜索已经无法准确定位用户需求,同时很难快速满足多 样的个性化需求。 很多信息之间存在关联,但是这种关系 无法通过关键词简单地表示,于是这些信息就像一个个碎

片,散落在各处,并不能被很好地利用;同时,随着 Web 2.0 应用的兴起,越来越多的系统中拥有与用户相关的信息,而 这些系统本身又是独立封闭的,于是引发了各种问题[2] 。

信息/资源碎片化: 信息与信息之间缺乏多样化的 关联组织。

应用碎片化:用户所使用的各种应用在不同的网站 上,应用之间缺乏关联,使用不便。关系碎片化:用户需要在不同的网站上注册 ID,并 在其中拥有各自独立且不同的关系。

用户碎片化:由于与用户相关的信息、应用、关系的 分裂,造成用户本身也呈现为碎片化特点。

这些碎片分布在网络中,不仅造成了大量冗余,而且 为用户的使用带来很多不便。于是,“开放平台”应运而生, 通过“打破封闭,全面开放,整合碎片”的方式,实现以“用 户”为中心的全周期、一站式服务。

三、总体架构

应用架构

应用名

应用定位

开放平台门户

面向互联网的开发平台门户,用于进行平台营销和推广,并提供第三方商户开发者进行 接口文档查阅

用户门户平台

平台用户平台,用户可通过此平台进行申请授权、查询等操作

OpenAPI网关

能力开发网关,将行内能力进行开放,并提供第三方应用或SDK进行调用

OpenAPI管理服务

能力开放网关的后端管理服务,供管理平台调用

OpenAPI管理平台

提供运营人员对于能力开放网关的管理平台

用户管理服务

提供用户门户平台的服务支持及提供对运营的管理支持功能

用户单点登录服务

针对于门户平台的单点登录服务,增强金融开放平台的门户扩展能力

内容管理服务

对于门户平台的内容管理服务,完成内容展示编排及对外推送

    1. 技术架构

应用名

应用定位

开放平台门户

使用HTML5、VueJS、CSS3等关键技术实现纯静态的前端,并使用element ui作为主要UI组件,采用npm、webpack、babel等对于前端进行持续构建

用户门户平台

使用HTML5、VueJS、CSS3等关键技术实现纯静态的前端,并使用element ui作为主要UI组件,采用npm、webpack、babel等对于前端进行持续构建,从技术路线上与开放平台门户保持一致

OpenAPI

网关

采用RxNetty作为NIO网络通道,并设计实现基于责任链的过滤器模型,实现默认RestFul服务,技术路线与现有互金平台中的渠道网关类似

OpenAPI

管理服务

使用SpringBoot完成平台AOP和IoC控制,并集成HSF分布式框架,对于OpenAPI管理平台发布HSF服务

OpenAPI

管理平台

功能实现在互金平台的运营中心系统内,实现界面功能,调用相应管理类服务

用户管理服务

使用SpringBoot完成平台AOP和IoC控制,并集成HSF分布式框架,提供RestFul和HSF服务接口

用户单点登录服务

采用RxNetty作为NIO网络通道,并设计实现基于责任链的过滤器模型,实现默认RestFul服务,技术路线与现有互金平台中的渠道网关类似

内容管理服务

使用SpringBoot、Freemarker等架构进行开发,并集成HSF分布式框架,提供HSF服务接口

四、整体流程

    1. 登录流程

    1. OpenAPI调用流程

    1. OpenAPI管理流程

各平台用户管理流程

五、其他

    1. 支持多种API模式

说明

层次

定位说明

接入层

负责实现各类接入方式,包括restful方式接入、文件方式接入、h5界面接入;三种不同的接入方式 将独立形成网关,分别为api网关文件网关h5网关

逻辑层

负责网关平台核心逻辑,包括流量控制、安全控制、服务鉴权、协议转换和服务通知等。

服务层

为能力开放平台对外输出服务主体。

管理层

通过OpenAPI管理服务对于网关进行管理。

接入许可信息

API种类错综复杂,基于多种开源接口测试平台,例如Swagger,ApiFox等等,OpenAPI可以提供一种统一的接口 接入形式,让所有接口按照统一形式接入平台。

信息项

字段名

类型

描述

openid

String

接入用户编号,获取方式:接入申请通过后,由平台给予发放,用于标注唯一用户

appid

String

接入应用编号,获取方式:单个用户可拥有多个appId,用于标注唯一应用,由平台发放

appkey

String

应用密钥,获取方式:与appId对应的,用于数字签名使用,由平台同appId一同发放

token

String

临时许可:获取方式:用户应用登录开发平台后,由平台进行发放,有效时间

20min

tokenurl

String

用户获取临时许可url:获取方式:由接入用户提供,此url为接入用户提供服务,平台收到临时许可获取请求后,将通过回调此url方式,将token信息返回接入用户, 接入用户收到token后,自行进行保存

接入层技术架构

    1. 流量监控
    2. 各平台接入以及提供对外服务

API网关:负责将内部共享服务对外进行发布,提供第三方应用、H5网关和本行SDK(包括iOS SDK、Android SDK和JS SDK)进行调用,遵循OpenAPI3.0标准。

集成模式

模式

说明

适用场景

通过第三方应用直接调用

直接通过网关api进行服务调用,由第三方应用进行用户交互界面开发。

最为开放的模式,对于第三方应用的开发框架无依赖或干扰,集成难度最低,并且适用于第三方应用服务端进行调用。

通 过 JS SDK进行调用

第三方应用集成平台的JS SDK进行调用,简化第三方应用的开发。

适用于第三方应用为混编应用或者微信小程序等类似web应用,集成开放性较高, 并且与开发语言无关

通 过 iOS、Android

SDK进行调用

第三方应用集成平台的原生SDK进行调用,简化第三方应用的开发,并且安全性上得到保证

适用于第三方应用为原生开发架构的情况下进行调用,有原生应用的关系,安全性最高

通过h5网 关进 行 调

直接或者间接访问H5网关,将用户交互权利 移交给平台,由平台来完成该项业务的流程, 此调用方式能与其他调用方式相结合

适用于用户交互负责度高,并且具有较强技术和安全要求的场景之上,例如开户及绑卡流程等。

调用流程

通过第三方应用直接调用

第三方应用可以直接通过平台提供的OpenAPI进行调用,提供最终用户的操作界面等由第三方应用自行完成

通过JS SDK进行调用

第三方应用通过集成平台的JS SDK进行调用,简化第三方应用的开发

通过iOS、Android SDK进行调用

第三方应用通过集成平台原生SDK进行调用,简化第三方应用的开发

通过h5网关进行调用

直接或者间接通过H5网关进行调用

直接调用


yg9538 2022年8月17日 11:25 439 收藏文档