2014-09-21 45 views
3

我正在做一些REST服务,并且在执行GET请求时,我正在辩论如果在那里没有记录,我应该怎么做,例如/profile/1234。现在,如果您尝试使用/profiles/1234(注意配置文件中的s),它肯定会是404代码,因为找不到该网址。但是当涉及到那里没有1234配置文件,我不知道我应该回报。我不想返回{},因为这可能会让人觉得有没有数据的记录。但是,如果我返回一个404错误代码,API的使用者应该如何区分这两个404之间的区别?如何判断不存在的服务或缺少记录?

我该如何成为一个负责任的API设计师,通过编程方式沟通不存在的服务和不存在的记录之间的区别?

+0

看看http状态码的列表,看起来204可能是/ profile/1234的合适代码 – 2014-09-21 07:59:35

+0

我不知道这件事。 204表示没有机构可以返回,是的 - 但为什么我会期待GET获得204?我预计会有200人。 – Makoto 2014-09-21 08:00:46

+1

[有效的请求的适当REST响应代码是什么,但是数据是空的?]的可能的重复(http://stackoverflow.com/questions/11746894/what-is-the-proper-rest-response-code-for - 一个有效的请求,但一个空的数据) – Makoto 2014-09-21 08:06:43

回答

1

您可以发送自定义状态消息,这将帮助您区分“不同的”404 s。

另一方面,我不会担心这种区别。人们习惯于小心地输入api端点。只要他们手动测试他们的应用程序一点点,这个问题就成了一个问题。