微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

这种情况下的 HTTP 状态代码400 或 422

如何解决这种情况下的 HTTP 状态代码400 或 422

我有一些看起来像这样的方法

def some_method
   if params["status"] == "good"
      some action
      render json: {message: "action success"},status: 200
   else 
      render json: {message: "The status is not good,try again later when the status is good"},status: 200
   end
end

你看到当状态不好时,目前我返回 200 状态代码,这种情况下最好的状态代码是什么。是 400 还是 422?

解决方法

422 的描述说:

422(不可处理实体)状态码表示服务器 了解请求实体的内容类型(因此 415(不支持的媒体类型)状态代码不合适),以及 请求实体的语法是正确的(因此是 400(错误请求) 状态代码不合适)但无法处理包含的 说明。

总之,这取决于您的用例细节。

,

当我构建 API 时,我通常使用 422 aka :unprocessable_entity 来处理验证错误。

在我看来,:unprocessable_entity 看起来更明确。

,

Loadd64!

维基百科上提供了 HTTP Status codes 的列表,应该对您非常有帮助。如果这是对用户输入进行身份验证,则正确的状态代码将是 401

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。