本文为原创,转载请注明出处
开放平台体系结构及网关分析
开放平台以API的方式将公司的核心基础服务(譬如支付、交易等)开放给ISV(Independent Software Vendors,独立软件开发商),而这些功能由公司的各业务平台(为ISV提供API底层服务的提供部门)在开放平台的基础上,按一定的规范将其内部的数据或业务流程以API的形式提供给ISV。ISV基于这些基础服务进行行业的定制、创新和进化,以最终促成新商业文明生态圈。
- 开放平台系统示意图
从上图可以看到,在整个API 开发与调用过程中,直接的参与者有4 个:
1.业务平台开发者:负责接口的设计,开发与维护
2. 产品/运营:主要通过后台管理系统对线上API 、APP和开发者入驻进行审核管理。
3. ISV:外部合作伙伴,通过开放平台提供的接口,开发出相应的APP供用户使用
4. 用户:使用ISV开发出的APP
2. API系统调用
- APP实例化SDK客户端和API输入对象,并设置请求参数,然后调用SDK客户端
- SDK将输入对象里的参数组装为http请求的格式
- SDK对Http的输入参数进行RSA签名;
- SDK向网关发起HTTP请求;
- 网关根据请求里的API名称、版本以及应用Id查询开放核心获取API配置以及应用信息;
- 根据Http请求的输入以及上一步查询出的api配置和应用信息组装调用上下文;
- 网关做一些列的校验,包含:接口有效性校验、流量控制、验签、是否授权、是否订购、应用访问权限校验等;
- 网关根据API配置信息中的分发URL及其他WS参数动态创建WS客户端。
- 通过WS客户端,网关将请求分发到目标前置系统;
- 目标前置系统通过调用上下文中的信息找到对应的处理器;
- 目标前置系统将调用上下文转换为处理器需要的输入;
- 通过处理器,目标前置系统调用最终的目标系统;
- 目标系统执行业务逻辑并将处理结果返回给目标前置系统
- 目标前置系统对结果进行安全过滤并将结果转换为json或xml的格式;
- 目标前置系统返回处理结果给网关;
- 网关对结果加签;
- 网关返回加签后的结果给SDK;
- SDK将json或xml格式的数据转换为API的输出对象;
- SDK将API的输出对象返回给APP。