我们正在创作 REST 服务,当有人请求具有不存在的父 ID 的资源时该怎么做存在争论。
示例:您正在请求与公司关联的人员列表,因此您GET
的 ID 为 1,但该公司 ID 不存在。
我认为 REST 的定义表明我们将简单地返回一个空列表(导致 a HTTP 204 (No Content)
),因为根据规范,HTTP Bad Request 仅适用于格式错误的语法:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
由于语法错误,服务器无法理解该请求。客户端不应该在没有修改的情况下重复请求。
我认为更清楚的是没有要解释的错误,您请求的资源不存在。
关于最佳实践的想法?
这里有一个 SO 讨论:HTTP 400 (bad request) for logical error, not malformed request syntax虽然它有点抽象,如果我应该发布这个,或者只是使用那个问题,我会很伤心。