通用接口开放平台设计与实现——(2)API服务总体设计

本文详细介绍了通用接口开放平台的API服务总体设计,包括RESTful风格的接口、交互技术、输入输出参数、安全控制措施如身份认证、防篡改和时效性控制,以及签名算法和错误定义。此外,还提及了开源平台的相关资料。
摘要由CSDN通过智能技术生成

API服务是通用接口平台的主体部分,对外暴露Restful风格的数据接口,其他应用系统通过调用API服务,一方面,可以查询权限范围内的物流数据,另一方面,可以将自身系统产生的数据推送至物流系统。

总体设计

API服务分为服务技术框架和具体业务功能接口两部分,技术框架部分负责统一调度、数据验证、身份认证、安全控制、日志记录等职责,具体业务功能接口负责实际的业务接口功能处理,总体处理流程如下图所示:
在这里插入图片描述

交互技术

接口传输协议:HTTP
接口请求方式:POST
数据编码格式:UTF-8
数据传输格式:JSON

输入参数

API服务接口输入参数有且只有5个参数,如下表:

参数编码参数类型说明
serviceCodestring服务编码
appKeystring应用(调用系统)标识,由物流系统分配
requestTimestring请求时间,格式yyyy-MM-dd HH:mm:ss
signstring签名
signMethodstring签名方法,尚未启用,目前默认使用MD5,以后可扩展其他签名方式
datastring请求业务数据,json字符串

前面4个为系统参数,不能为空。
最后1个参数为业务参数,所有跟业务相关的数据都封装在该参数中。

输出参数

API服务接口返回参数有4个参数,如下表:

参数编码参数类型说明
executeResultstring执行结果,SUCCESS:成功,ERROR:失败
errorCodestring错误编码
errorMessagestring错误信息
datastring响应业务数据,json字符串

执行结果如为SUCCESS,则代表成功,可进一步从业务数据字段data获取返回的业务数据,如为ERROR,则代表接口执行出错, errorCode和errorMessage字段中存放错误编码和错误信息。

安全控制

身份认证

物流系统会为调用系统分配一个应用标识和密钥,调用系统在调用API服务时,传入应用标识,使用密钥对参数进行签名,将签名作为请求参数传入,通过签名来完成身份认证。

防篡改

物流接口平台会为调用系统分配一个密钥,调用系统使用该密钥,通过特定的加密算法,对请求参数进行加密,生成签名,将签名作为请求的一部分,传给物流接口平台。物流接口平台收到请求后,以同样的算法进行签名,对比二者是否相同,如不相同,则说明传递过程中发生了数据篡改,拒绝进行服务。

时效性控制

为了控制API服务调用的时效性,物流接口平台设置了请求的有效时间为600秒,以调用系统传入的请求时间参数与服务器当前时间进行比对,10分钟范围内的请求视为合法请求,超出该范围视为非法请求,拒绝服务。

签名算法

签名生成过程如下:
1.对所有请求参数(除去sign签名参数自身),根据参数编码的ASCII码表的顺序排序
2.依序拼装参数编码和参数值,形成一个字符串,每组参数编码与参数值中间使用=连接
3.把拼装好的字符串前后拼接应用密钥
4.使用MD5签名算法对编码后的字节流进行运算
5.将运算得到的字节流结果使用十六进制表示,转换为全部大写
最后产生的是一个32位长度的16进制数

注意:密钥仅参与生成签名的运算过程,不能放到参数列表中。

错误定义

平台级错误定义如下:

错误编码错误信息
S00****不能为空
S01请求时间格式不符合要求
S10应用代码不存在
S11应用已停用
S20服务不存在
S21服务已停用
S30无权限
S40请求时间超出合理范围
S50签名验证失败
S99未定义错误+具体异常信息

业务级错误定义参见各具体的API服务接口。

开源平台资料

平台名称:一二三开发平台
简介: 企业级通用低代码开发平台
设计资料:CSDN专栏
开源地址:Gitee
开源协议:MIT
欢迎收藏、点赞、评论,你的支持是我前行的动力。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学海无涯,行者无疆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值