缺少父资源的REST API代码/消息

时间:2013-03-13 11:39:13

标签: api rest http-status-code-404 httpresponse

我正在寻找正确的响应代码和指南的一些指导。请求构成另一个资源的资源的消息。

例如,GET请求:

用户/ {ID}

用户不存在的

将返回404,其中未找到用户资源的消息。

我的问题是,如果找不到用户资源,应该返回以下内容:

用户/ {ID} /朋友

我目前正在返回与第一个示例中相同的代码/消息。我应该回复专门针对朋友资源的消息吗?我个人认为让API客户端意识到找不到父资源更有帮助,因为你有一个更大的URI链。

2 个答案:

答案 0 :(得分:6)

在这个特定的例子中,如果要让客户区分朋友对不存在的用户的请求,以及朋友对没有朋友的用户的请求,我认为最有意义的是在第一种情况下返回404,在第二种情况下返回200。

换句话说,“无”是朋友的有效值。不存在用户存在但他们(可能是空的)朋友列表不存在的情况,因此在为父资源发布404时从不存在任何歧义。

答案 1 :(得分:1)

我很想返回400 Bad Request标头,并将错误消息放在响应正文中。不幸的是,在这种情况下没有正确或错误的答案,所以请选择最适合您和您的应用程序的方法。