有效负载中指定的无效资源的 HTTP 状态代码
Posted
技术标签:
【中文标题】有效负载中指定的无效资源的 HTTP 状态代码【英文标题】:HTTP Status code for invalid resource specified in payload 【发布时间】:2018-07-19 20:14:16 【问题描述】:我有一个 REST 请求(虽然不是完全 REST)。输入数据通过 HTTP 负载作为 XML 接收,因此要读取的记录在 xml 中指定为,
<Item>
<ID>1</ID>
</Item>
这里,如果在数据库中没有找到ID
'1',我应该返回404 Not found。
根据https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html,404 Not Found
被称为The server has not found anything matching the Request-URI.
但在我的情况下,可以成功访问 URI,并且无法找到有效负载中的数据。使用404
合适还是应该使用任何其他状态码?
【问题讨论】:
【参考方案1】:首先,您为什么要发送有效载荷来检索数据?如果您想以 RESTful 方式检索数据,您应该在路径中发送 id,例如 /some-resource/1
。我希望有一个很好的理由不遵循这个标准。
在我看来,无论如何,返回404
是最好的方法。如果没有找到资源,任何客户端都会期望 404
,即使正式定义指定资源在 URL 中也是如此。
【讨论】:
是的,无论你如何向服务器请求资源(url,xml有效负载)结果都是一样的,它不存在,404以上是关于有效负载中指定的无效资源的 HTTP 状态代码的主要内容,如果未能解决你的问题,请参考以下文章
Azure Synapse:Spark 作业定义中指定的目标 Spark 池未处于成功状态。当前状态:供应