gpt4 book ai didi

validation - 对于验证失败,REST API 服务返回的适当 HTTP 状态代码是什么?

转载 作者:行者123 更新时间:2023-12-02 23:16:03 26 4
gpt4 key购买 nike

目前,每当我在 Django 中遇到验证失败时,我都会返回 401 Unauthorized/Piston基于 REST API 的应用程序。看过HTTP Status Code Registry我不相信这是验证失败的适当代码,你们有什么建议?

  • 400 错误请求
  • 401 未经授权
  • 403 禁止
  • 405 方法不允许
  • 406 Not Acceptable
  • 412 前提条件失败
  • 417 期望失败
  • 422 无法处理的实体
  • 424 依赖失败

更新:上面的“验证失败”是指应用程序级别的数据验证失败,即错误指定的日期时间、虚假的电子邮件地址等。

最佳答案

如果“验证失败”意味着请求中存在某些客户端错误,则使用 HTTP 400(错误请求)。例如,如果 URI 应该具有 ISO-8601 日期,但您发现它的格式错误或指的是 2 月 31 日,那么您将返回 HTTP 400。如果您期望实体主体中具有格式良好的 XML,并且解析失败。

(1/2016):过去五年WebDAV更具体的 HTTP 422(不可处理实体)已成为 HTTP 400 的一个非常合理的替代方案。例如,请参阅 JSON API 中的使用。 。但请注意,HTTP 422 尚未进入 HTTP 1.1,RFC-7231 .

理查森和鲁比的RESTful Web Services包含关于何时使用各种 HTTP 响应代码的非常有用的附录。他们说:

400 (“Bad Request”)
Importance: High.
This is the generic client-side error status, used when no other 4xx error code is appropriate. It’s commonly used when the client submits a representation along with aPUT or POST request, and the representation is in the right format, but it doesn’t makeany sense. (p. 381)

和:

401 (“Unauthorized”)
Importance: High.
The client tried to operate on a protected resource without providing the proper authentication credentials. It may have provided the wrong credentials, or none at all.The credentials may be a username and password, an API key, or an authenticationtoken—whatever the service in question is expecting. It’s common for a client to makea request for a URI and accept a 401 just so it knows what kind of credentials to sendand in what format. [...]

关于validation - 对于验证失败,REST API 服务返回的适当 HTTP 状态代码是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1959947/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com