当消费者要求提供与不存在的资源相关的资源时,我应该发送什么API响应?

时间:2015-07-16 22:18:00

标签: api rest http

我们说我有资源

/providers/123

当消费者为此发送GET时,它会收到200 OK和123标识的提供者记录,如果没有ID为123的提供者,则收到404 Not Found。罚款。

现在让我们说我有另一种资源

/providers/123/publications

表示提供者123创作的出版物集合。当消费者为此发送GET时:

  • 如果提供商存在并且有一些出版物,那么他们就可以获得200份收藏的出版物。
  • 如果提供者存在且没有发布,那么他们就会获得200 OK,其中一个空的集合。

但是,如果提供商不存在怎么办? 404?空集200? 200空集和警告?还有别的吗?

2 个答案:

答案 0 :(得分:2)

肯定是404。 URL指的是不存在的资源。

不要提供超出要求的信息。

答案 1 :(得分:-1)

取决于您的最终用户(进行API调用的实体)

如果它是一个人,然后200,并且错误地说提供者不存在似乎是最好的。这种情况主要适用于对API的单次调用

如果最终用户是一个从结果集中解析数据的机器人,那么带有空集的200将是一个不错的选择。这种情况适用于批量调用API调用。

示例:此Geonames API提供纬度和经度的国家/地区代码,但如果我的纬度和经度无效,则会抛出错误消息

http://api.geonames.org/countryCode?lat=181&lng=181&username=demo