Article
接口幂等性:从重复提交到可重试写入
接口幂等性:从重复提交到可重试写入
什么时候必须幂等
- 支付、下单、发送通知
- 后台「发布文章」「通过评论」等按钮可能被连点
- 客户端超时后自动重试
博客场景体量小,但仍建议在关键写操作上形成习惯。
常见做法
- 业务唯一键:例如 「slug」 唯一,重复创建直接返回已有记录或 409
- Idempotency-Key:客户端生成密钥,服务端缓存处理结果
- 状态机:只允许 「draft → published」 一次,重复发布返回当前态
实现提示
幂等键缓存要设 TTL,并与用户 / 路由绑定,防止串用。失败是否可重试,要在错误码上区分「可重试」与「业务拒绝」。
小结
先识别「会重复」的入口,再选最轻的幂等手段。不要为只读接口过度设计。