当POST请求未成功且请求正文格式正确时,应返回什么HTTP响应代码?
对于成功的POST请求,我使用201 - Created,但没有相应的未创建的代码。
我在考虑400 - 不良请求,但这实际上会指向用户请求格式不正确或304 - 未修改。
答案 0 :(得分:3)
POST
请求未成功且请求正文格式正确时,应返回哪些HTTP响应代码?
如果您的意思是请求有效负载的语法有效,但由于数据无效而无法处理,您可以使用422
:
11.2. 422 Unprocessable Entity
422
(不可处理的实体)状态代码表示服务器 了解请求实体的内容类型(因此a415
(不支持的媒体类型)状态代码不合适),以及 请求实体的语法是正确的(因此400
(错误请求) 状态代码不合适但是无法处理包含的内容 说明。例如,如果是XML,则可能会出现此错误情况 请求正文包含格式正确(即语法正确),但是 语义错误的XML指令。
请记住在响应有效负载中提供一个很好的描述,说明有效负载有什么问题。有关如何报告HTTP API中的问题的详细信息,请参阅RFC 7807。
POST
请求失败的原因更多是业务逻辑错误,例如“帐户余额太低而无法提取5.00美元”。
403
(禁止)状态代码表示服务器已理解 请求但拒绝授权。希望的服务器 公开为什么禁止请求可以描述 响应有效负载中的原因(如果有)。 [...]
409
(冲突)状态代码表示请求不能 由于与目标的当前状态发生冲突而完成 资源。此代码用于用户可能的情况 能够解决冲突并重新提交请求。服务器 应该生成一个包含足够用户信息的有效负载 认识到冲突的根源。 [...]