前端全栈SpringBoot文档编辑

API接口设计规范

2019-09-17  本文已影响0人  零一间

协议

域名

版本控制

接口版本的控制,可以在程序发布时,不同版本的业务逻辑在一定程度上避免受到影响。

https://api.example.com/v{n}

URL规则

例子
https://api.example.com/v1/products
https://api.example.com/v1/users
https://api.example.com/v1/employees

请求方式

例子: 
GET    /v1/products      获取所有商品
GET    /v1/products/ID   获取某个指定商品的信息
POST   /v1/products      新建一个商品
PUT    /v1/products/ID   更新某个指定商品的信息
DELETE /v1/products/ID   删除某个商品
GET    /v1/products/ID/purchases      列出某个指定商品的所有投资者
GET    /v1/products/ID/purchases/ID   获取某个指定商品的指定投资者信息

方法命名也要具有一定规范

请求参数

响应格式

response:
----------------------------------------
{
   status: 200,               // 详见【status】

   data: {
      code: 1,                // 详见【code】
      data: {} || [],         // 数据
      message: '成功',        // 存放响应信息提示,显示给客户端用户【须语义化中文提示】
      sysMessage: 'success'   // 存放响应信息提示,调试使用,中英文都行
      ...                     // 其它参数,如 total【总记录数】等
   },

   msg: '成功',            // 存放响应信息提示,显示给客户端用户【须语义化中文提示】
   sysMsg: 'success'       // 存放响应信息提示,调试使用,中英文都行
}
----------------------------------------
【status】:
           200: OK       400: Bad Request        500:Internal Server Error       
                         401:Unauthorized
                         403:Forbidden
                         404:Not Found

【code】:
         1: 获取数据成功 | 操作成功             0:获取数据失败 | 操作失败

前后端约定

后端

 "phone":"150*****000",
 "idCard":"3500**********0555",  
 "email":"40*****00@qq.com"     

前端

文档

这个无需多说,在系统对接的时候,有文档绝对是个福音。

瘦客户端

客户端任何的修改都是需要发版的,发版需要审核流程。

接口日志

方便故障定位,错误重放,日志统计分析等

上传/下载

上传/下载,参数增加文件md5,用于完整性校验(传输过程可能丢失数据)

性能优化

合并接口

字段简写

无用字段清理

图片裁剪

局部刷新

预加载

其他

接口安全,防参数篡改

频率的控制

数据存储

是否需要依赖于第三方

服务降级,熔断和限流

拆分

扩展性

适配性

幂等

重复提交

部署

缓存穿透、缓存雪崩和缓存击穿

是否需要白名单

预加载

重试

异步

服务端推送或者客户端拉取数据

隔离(例如内网的中台服务,后端服务)

健康检查,后台大盘监控可视化,故障主动通知

上一篇 下一篇

猜你喜欢

热点阅读