首页 > 解决方案 > 哪个 HTTP 状态代码应指示由于无效输入而未能执行某些代码?

问题描述

我有一个需要用户 ID 的 POST 请求。如果找到该用户 id,则一切都成功执行,并返回默认的 http 代码(即 200)。如果没有找到用户ID,我应该返回什么?4xx 似乎都不能满足我的要求。

标签: httphttp-status-codeshttp-status

解决方案


我有一个POST需要用户 ID 的请求。

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

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

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

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

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


推荐阅读