是否更正请求正文中无效配置的http状态



当API接收到映射系统中其他数据但未找到其他数据的属性时,我很难为其选择正确的HTTP状态。我最初想到的是422,因为它描述了用例,但听起来它是为WebDAV保留的。然后我想可能是404,但我在心里把它和一个不正确的URL联系起来。另一个选项使用错误代码200,并显示失败消息。

示例:密钥nvdaKey不是系统知道的密钥配置。

POST: pgpTool.com/encrypt

{
"message": "my secret message",
"keyConfigName": "nvdaKey"
}

IANA HTTP状态代码注册表当前将HTTP Semantics列为状态代码422 的权威参考

422(不可处理内容(状态代码指示服务器了解请求内容的内容类型(因此415(不支持的媒体类型(状态代码不合适(,并且请求内容的语法正确,但无法处理包含的说明。

所以如果你认为这是一个赢家,就去争取吧。

403禁止也是一种选择("我理解你的请求,但我拒绝履行"(。

状态码是通过网络域传输文档时的元数据;目标受众是通用HTTP组件(浏览器、缓存、代理……(客户端应该从正文中获取消息的语义(就像我们期望阅读网络的人通过阅读返回的网页而不是通过阅读HTTP标头来了解错误一样(。

因此,除了一些纯粹的机械问题(缓存、头的解释(之外,只要类(Client Error/4xx(正确,就不一定要精确地生成正确的状态代码。

请注意,不识别422的客户端应该将响应视为400。

最新更新