我的API的方法论总结笔记
2022-08-05 17:25:33 19 举报
AI智能生成
我的API的方法论总结笔记
作者其他创作
大纲/内容
4.最佳实践
场景1.URL的设计
增加 save/add
删除 delete/delete-all
修改 update/update-batch
查询
分页 list/page
搜索查询 get/getxxx/get-mini
命名
URL请求采用小写字母,数字,部分特殊符号(非制表符)组成。
URL请求中不采用大小写混合的驼峰命名方式,尽量采用全小写单词,如果需要连接多个单词,则采用连接符“-”连接单词
分级
场景2.不要使用put/delete等http请求参数
权限控制拦截,前端的请求http封装都没有对put/delete做处理.
3.如何设计API
API接口的统一性
每个API请求 header区
sid
系统ID(请求唯一标识)
token
sign
unioncode
每个API响应
sid 系统ID(请求唯一标识)
time 耗时,单位:毫秒
code 响应码,200=成功,500=系统错误,401=未登录,403=无权限,404=未找到资源,601=入参校验异常,999=业务异常
status:true/false 响应状态,code=200时值为true,非200时值为false
message 如:操作成功
data 响应的返回对象
extraData
状态码
200 success
401 Unauthorized
402 Forbidden
404 Not Found
500 系统错误
502 网关异常
URL的设计
1.用中杠-不用下杠_;
2.参数列表要encode;
3.URI中的名词表示资源集合,使用复数形式。
4.URL层级不宜过深
5.查询/分页查询
1.业界标准
RESTful API
RPC API
GraphQL
Bean
VO
通常是请求处理层传输的对象
DO
与数据库表结构一一对应
DTO
它是 RPC 服务提供的领域模型
BO
它是业务逻辑层封装业务逻辑的对象
2.原则有哪些
探讨 API 接口的兼容性
接口url版本化
API接口的性能
查询接口:提供的字段在数据库建立索引
报表,批量,冷数据查询考虑异步
API接口的异常处理
RPC
跨应用 RPC 调用优先考虑使用 isSuccess() 方法、“错误码”、“错误简短信息”
使用try...catch()捕获RT异常,然后用ResultResponse封装下异常错误码给调用方
RESTFul
使用WEB Controller Advice 建立全局的统一异常拦截返回封装
API接口的幂等性
什么是幂等性
重复提交或服务端的多次重试只会产生一份结果
为什么要幂等
并不是所有的接口都要保证幂等
如何实现幂等
1.唯一索引,防止新增脏数据
2.token机制,防止页面重复提交
3.悲观锁 获取数据的时候加锁获取
4.乐观锁 乐观锁只是在更新数据那一刻锁表,其他时间不锁表,所以相对于悲观锁,效率更高
5.分布式锁
6.select + insert 并发不高的后台系统
7.保证了有限状态机的幂等
8.对外提供接口的api如何保证幂等 提供入参unionId先查后写.
并发场景
全局锁 例如悲观锁与乐观锁保证数据的唯一性
没有100%正确答案
开发内部:前端/后端/移动端统一一个约束文档就行
没必要为了遵循所谓的规范让其他人增加过多的学习成本.
0 条评论
下一页