Web服务的正确响应是什么?

时间:2010-04-29 16:56:56

标签: web-services rest

我的一个Web服务返回一个人所拥有的项目的ID列表。也就是说,当我获得http://example.com/wsListProjects?user=eric时,我会收到带有项目列表的xml。但是,当我指定user = xxx,谁不存在时,我目前返回404响应?这是回复的正确答案吗?

感谢。

3 个答案:

答案 0 :(得分:1)

不存在的用户与未分配任何项目的用户之间是否存在差异(从“程序需要做某事”的角度来看)?如果没有,那么只要在任何一种情况下都返回一个空列表。

如果存在差异,则可能添加一个MessageCode / MessageText字段,如果用户不存在则填写该字段以及空白列表。

在任何一种情况下,我认为404不合适 - 网站存在,而404表示实际网络请求出现问题。

答案 1 :(得分:1)

这真的是一个意见问题。许多Web服务(如Twitter)在有意义时经常使用HTTP返回代码(例如,如果用户凭据错误,则为401 Unauthorized),其他Web服务只返回XML格式的错误对象,而其他人则根本不返回任何内容。这完全取决于你的设计。

答案 2 :(得分:0)

如果用户不能访问该页面,我将返回404。通常,您将返回403(或401),但在某些情况下,404很有意义,因为您希望看起来好像页面甚至不存在。真的取决于具体情况。