【发布时间】:2018-09-05 01:10:13
【问题描述】:
如果客户端从我的 REST 应用程序请求不存在的资源,例如
http://localhost:8080/app/foo/1
并且该 id 不存在 Foo 资源,我应该返回 404 错误代码吗?还是我应该返回 200 并带有 {"data": null } 的正文?
阅读this thread from ember data 让我觉得我应该返回 404。
但是当我读到this passage from the JSONAPI spec 时,我觉得我应该返回{"data " : null}:
主要数据必须是:
- 单个资源对象、单个资源标识符对象或 null,用于针对单个资源的请求
- 资源对象数组、资源标识符对象数组或空数组 ([]),用于针对资源集合的请求
因为这个案例似乎针对的是单一资源。
在解析数据部分它说:
服务器必须以 200 OK 响应成功响应获取单个资源或资源集合的请求。
“成功”是什么意思?如果查询因为那里没有条目而没有找到任何东西,那么查询就会运行并得到准确的结果,那是否成功?
在同一部分的下面是:
只有当请求的 URL 可能对应于单个资源但当前不对应时,null 才是适当的响应。
我不清楚这应该是什么意思。
那么它是什么,为什么?
(这并不是专门针对 ember-data,我想澄清一下我应该做什么才能符合规范。我只提到了 ember-data,因为它似乎是一个工作参考实现jsonapi 应该可以工作。)
【问题讨论】:
标签: json rest hateoas json-api