当图像大小超过限制时,REST API 向 return 发送 HTTP 状态代码
HTTP status code to return by a REST API when image size exceeds limit
到特定端点的 POST 允许上传图像,除非图像太大,所以我想 return 在这种情况下适当的 http 状态代码响应。
HTTP 状态代码 400 响应似乎不适合这种情况。
400 Bad Request: "The server cannot or will not process the request due
to something that is perceived to be a client error (e.g., malformed
request syntax, invalid request message framing, or deceptive request
routing).
我认为图片太大并不意味着请求格式不正确或语法不正确。
有什么建议吗?
您可以使用 420 甚至 422,但我会避免使用它,直到您有充分的理由为其单独编写代码。通常最好保持不同状态代码的数量相当少。检查该列表中的前 10 名:http://www.restapitutorial.com/httpstatuscodes.html
您应该避免使用超过 10 个代码,因为您的 API 会变得太复杂。
所以我的答案是:使用 400 并向客户端返回正确的错误消息,例如:"Image too large, you can upload files up to XX MB"
这似乎是 413 Payload Too Large 的理想候选者。来自 Section 6.5.11 of RFC 7231:
The 413 (Payload Too Large) status code indicates that the server is
refusing to process a request because the request payload is larger
than the server is willing or able to process.
到特定端点的 POST 允许上传图像,除非图像太大,所以我想 return 在这种情况下适当的 http 状态代码响应。
HTTP 状态代码 400 响应似乎不适合这种情况。
400 Bad Request: "The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
我认为图片太大并不意味着请求格式不正确或语法不正确。
有什么建议吗?
您可以使用 420 甚至 422,但我会避免使用它,直到您有充分的理由为其单独编写代码。通常最好保持不同状态代码的数量相当少。检查该列表中的前 10 名:http://www.restapitutorial.com/httpstatuscodes.html
您应该避免使用超过 10 个代码,因为您的 API 会变得太复杂。
所以我的答案是:使用 400 并向客户端返回正确的错误消息,例如:"Image too large, you can upload files up to XX MB"
这似乎是 413 Payload Too Large 的理想候选者。来自 Section 6.5.11 of RFC 7231:
The 413 (Payload Too Large) status code indicates that the server is refusing to process a request because the request payload is larger than the server is willing or able to process.