考虑用户删除帖子的简单情况。这是一个简单的 HTTP DELETE/POST 请求,其中包含一个必填字段 post_id。
如果没有提供 post_id 服务器应该做什么?
显然,用户永远不应该遇到这种行为,所以让我们保持纯粹。
我的第一个请求是 400 错误请求,但规范说
The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the request without modifications.
而且我会说从语法/http POV 来看缺少字段是可以的,它是特定于应用程序域的语义要求。
200 OK 有解释是不好的,500 感觉很奇怪,因为这是请求问题。
想法?
最佳答案
400 是正确的响应。
400 从 HTTP 的角度来看并不局限于格式错误的语法。缺少强制参数是应用程序定义的语法错误,因此是“错误请求”
编辑
乍一看,没有单独的返回码似乎很奇怪,但返回码旨在区分客户端应采取的操作。 400 错误代码表示客户端应将 POST 数据或查询字符串更改为应用程序定义的格式。因此它适用于这种情况。
关于api - 没有必填字段的请求的正确 HTTP 响应代码是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5077871/