You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

锁定记录场景下Web API的HTTP状态码选型咨询

针对你的API场景的HTTP状态码选择

场景1:请求已被其他用户锁定的记录

别用BadRequest(400),400状态码是用来标识客户端请求本身存在格式错误、参数非法这类问题,但你的场景属于业务层面的资源冲突——目标记录已经被其他用户锁定,和请求本身的正确性无关。

最合适的状态码是409 Conflict。HTTP规范里409就是专门用于处理请求与当前资源状态冲突的场景,比如资源被锁定、并发编辑冲突等。返回时在响应体里带上明确提示(比如“该记录已被用户XXX锁定”),客户端就能根据这个状态码和消息做对应的提示或重试逻辑。

场景2:请求尚未准备好处理的记录

同样不适合用400,这里请求格式是合法的,但资源当前状态不支持执行该操作。推荐用422 Unprocessable Content。这个状态码针对的就是“请求语法正确,但语义上无法被服务器处理”的情况,完美匹配“记录未准备好处理”的业务场景。响应体里可以补充具体原因,比如“该记录尚未完成预处理,暂无法选择”。

额外提一句:如果业务允许用户稍后重试,还可以在响应头里加上Retry-After字段,告知客户端多久之后可以再次尝试请求,优化用户体验。

内容的提问来源于stack exchange,提问作者Justin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 03:17:04