【发布时间】:2011-11-09 13:19:24
【问题描述】:
我们正在创作 REST 服务,当有人请求具有不存在的父 ID 的资源时该怎么做存在争议。
示例:您正在请求与公司关联的人员列表,因此您 GET 的 ID 为 1,但该公司 ID 不存在。
我认为 REST 的定义表明我们将简单地返回一个空列表(导致 HTTP 204 (No Content)),因为根据规范,HTTP 错误请求仅适用于格式错误的语法:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
由于语法错误,服务器无法理解请求。客户端不应该在没有修改的情况下重复请求。
我认为没有错误要解释也更清楚,您请求的资源不存在。
对最佳实践的想法?
这里有一个 SO 讨论:HTTP 400 (bad request) for logical error, not malformed request syntax 虽然它有点抽象,但如果我应该发布这个,或者只是使用那个问题,我会感到很痛苦。
【问题讨论】:
-
我尝试了 Jersey (JAX-RS) 默认为空列表。如果您返回一个空列表,您将获得 JSON 格式的空列表以及 204 错误。并不是说这是正确的行为,而是一个数据点。
标签: rest jersey jax-rs http-error