2016/09/21 系统架构 No Comments 开放API接口设计思路 最近文章:[开放API接口安全设计思路](https://www.fity.cn/post/651.html "开放API接口安全设计") 最后更新:2019-06-21 20:05:39 星期五 ### 交互设计约束: 前端和后端进行交互,前端按照约定请求URL路径,并传入相关参数,后端服务器接收请求,进行业务处理,返回json/jsonp数据给前端。 - [x] 请求方式约束:POST - [x] 传输协议约束:HTTPS ### 应用模块设计: 应用按模块设计方式。如: > sso 单点登录 > news 资讯 对应URL路径: > /sso/register/v1.do > /news/top_list/v1.do ### 版本设计: 版本设计通过控制器方法约束,便于同一接口多版本的集中管理。如: > /sso/register/v1.do ### 安全约束: 考虑兼容多场景API校验,设计多种校验方式。模式如下: 1. AES校验:AES解密校验|接口超时校验|站点合法性校验 2. 基础校验:站点合法性校验(待考虑加入计算异常基础验证) 3. 用户token校验 无论是使用哪一种校验模式,对client端的传参都必要做校验,通过后执行处理程序。 同时,对于允许用户自定义操作的数据要特殊判断限定,当参数不合法拒绝处理。 ### 异常约束: 规范异常管理,统一输出json信息。 ### 缓存设计: 程序设计缓存值统一继承于基类的cache参数。全局默认缓存为3600秒。所有继承基类的方法均可用使用$this->cache判断是否启用缓存。 API接口程序中可便捷调用缓存处理函数进行处理数据是否缓存输出。如: ``` $cache_key = '';//缓存key,部分使用了md5 if(!$res = apiCache ($cache_key, $this->cache)){ //执行回源 $res = ......... //存储数据 apiCache ($cache_key, $this->cache, $res); } return result($res);//返回 ``` ### 返回格式约束: 为保障返回值的统一与简洁直观,API执行成功后统一交由系统公共函数result()返回。返回格式: ``` {code:'', data:'', msg:''} 字段说明: code:状态码 data:返回值 {total:''; list:[]} msg:说明信息 ``` ### 返回状态码约束: > 200:请求处理成功 > 202:接受成功,未处理完成,如:处理(提交)失败 > 400:发生异常(异常机制) > 401:校验失败 本文最后更新于 2019-07-04 10:18:15 并被添加「API设计」标签,已有 3040 位童鞋阅读过。 本文作者:未来往事 本文链接:https://felixway.cn/post/657.html 本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处 相关文章 开放API接口安全设计
此处评论已关闭