如果我正在寻找一组用户,我会GET /api/user
,如果我找不到,则会返回200
和用户,404
如果没有用户收集。但是,如果我有一个收集用户,但现在不是用户,或者我的请求包含一个不返回结果的过滤器,该怎么办?
假设我有2个用户,[{name:"john"},{name:"jill"}]
GET /api/user
将返回上面的200
。
GET /api/user?name=john
将[{name:"john"}]
200
但如果没有用户匹配搜索该怎么办?
GET /api/user?name=sam
我:
200
204
,因为列表为空(基本上是相同的)404
我很好GET /api/foo
应该返回404
,因为没有这样的资源(没有定义foo集合)。我也很好GET /api/user/10
如果没有ID为10的用户,则应该返回404
,因为没有这样的资源。
但是如果GET /api/user
存在此类资源但其中没有实际用户,或者上面的情况为GET /api/user?name=sam
,则 是用户集合,因此/api/user
是一个有效的路径;它只是没有匹配给定的过滤器。
你会回报什么?
思想?
答案 0 :(得分:0)
根据我的评论,我更喜欢204以上的空阵列,但不清楚。
这是我能找到的最好的讨论:
https://groups.google.com/forum/#!msg/api-craft/wngl_ZKONyk/hI1n88FeUWsJ