SuperAPI AI 工具集

idempotency

通用与其它

查看项目

更新于 10-16 02:31

技能介绍

用途:该技能用于在创建变更类(mutation)接口时保证操作可安全重试,避免因网络失败、客户端重试或用户双击导致重复扣款、重复下单或数据损坏。适用于支付处理、订单创建、库存扣减、邮件发送、账户创建等不应发生两次的操作。

主要能力:提出“铁律”——绝不依赖前端防止重复请求,前端禁用按钮、加载状态、用户谨慎等都不能作为保护。给出检测重复风险的信号:变更接口没有防重保护即应停止。提供正确模式:要求请求头携带 Idempotency-Key,服务端按 key 与用户查询已有记录,命中则返回缓存的响应;未命中则处理业务并缓存响应(含状态码、响应体、过期时间,示例为 24 小时)。

使用方式:客户端生成幂等键,可用 UUID、确定性组合(如 userId-orderId-timestamp)或请求内容哈希;服务端存储幂等记录(key、userId、statusCode、response、createdAt、expiresAt),并定期清理旧键。示例中通过 POST /payments 并设置 Headers: { "Idempotency-Key": "user-123-order-456-attempt-1" } 调用。

适用场景与限制:适合支付、订单、库存、邮件、账户创建等关键变更操作。资料强调唯一约束只会抛错而非返回成功,用户体验差,因此仍需幂等键返回相同成功响应。文档未提供具体语言、框架或数据库的完整实现细节,也未说明收费、平台或性能数据,这些暂未提供。