Hon*_*ule 6 rest http-status-codes flow-js
我正在编写一个RESTful API,其中包含一些端点,客户端可以将这些端点PUT或POST分块文件(使用flow.js),包括元数据中的有效负载摘要.服务器还会计算摘要,如果摘要不匹配,则会抛出错误,在这种情况下,客户端应尝试重试相同的请求而不做任何更改(至少在达到某个重试限制之前).
根据定义,所有标准代码似乎都不合适.什么是最好的代码?是否有任何符合惯例?
注意:出于与此库集成的目的,响应不能是404,415,500或501,因为它们将取消较大的操作而不是重试此部分.
我也不能使用409,因为它被用于识别上传同一文件的多个副本的尝试,我相信这更好地使用409.
小智 6
我认为当用户的相同数据出现错误(例如损坏的数据)时更合适的状态代码是:
400 Bad Request
Run Code Online (Sandbox Code Playgroud)
对我来说,损坏的数据意味着数据传输引起的语法错误,语义上正确但语法上错误。
422 无法处理的实体也可能适用。 https://www.rfc-editor.org/rfc/rfc4918#section-11.2
我无法接受 Matthew 的答案,因为它仍然建议我不使用的值之一 - 而且我还相信 5xx 错误在错误发生在客户端或传输层时不太合适。
虽然仍在寻找更好的选择,但我现在将建议(并使用)非标准 4xx 错误,特别是
419 校验和失败
选择该特定值是因为它接近处理性质相似的错误的代码,并且与 409 相似,这可能是最接近的关系。
几天后将选出一个答案,为社区就最佳实践方法达成共识提供机会。
| 归档时间: |
|
| 查看次数: |
2555 次 |
| 最近记录: |