哪个 HTTP 状态代码应该指示由于输入无效而未能执行某些代码?

Which HTTP Status code should indicate failed to carry out some code due to invalid input?

我有一个 POST 请求需要用户 ID。如果找到该用户 ID,则一切都成功执行,默认的 http 代码为 returned(即 200)。如果找不到用户id,我该怎么办return?似乎没有 4xx 符合我的情况。

I have a POST request that require a user id.

但是这个id是如何发送到服务器的呢?

您的问题缺少有关您要实现的目标的大量详细信息,因此很难提出建议。但这里有一些我能想到的场景:

  • 如果无法找到具有 URI 中发送的给定标识符的资源表示,那么 404 将是正确的选择。

  • 如果查询参数的值无效(比如服务器需要整数但给出了字母字符)并且因此无法处理请求,则 400会合适。

  • 如果作为请求正文的一部分发送了无效值(例如验证失败或缺少预期值)并且因此无法处理请求,则你应该考虑 422.