如何写出高可用、鲁棒性强的接口呢?我们设计接口的时候需要考虑以下几点:
1. 入参校验:非空校验,格式校验(如手机号格式),业务校验(如充值金额必须大于0);
2. 短路式写法,非正常分支判断前置;
3. 非查询类接口都要考虑 重复请求、并发请求,保证接口的幂等性;
可能触发重复请求或消费的场景:(1)网络波动(2)分布式消息消费(3)用户重复操作(4)重试机制
服务幂等常见做法:https://blog.csdn.net/weixin_34174322/article/details/91721401
4. 查询类接口 根据业务 考量是否需要加缓存,以便快速读取;
5.考虑请求超时的情况;
6.考虑部分成功部分失败的情况
7. 状态流转不可逆,即更新状态时必须有前置状态;
8. 避免for循环调用下层服务;
9. 防止空指针异常;
10. 需要人工干预的关键业务节点进行业务报警;
11. 敏感信息展示脱敏、存储加密;
12. 规范代码,单个方法不超过60行,方法注释准确清晰;
13. 充分自测,写集成测试、mock测试,提高提测质量。
欢迎补充...