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

Web services web服务的正确响应是什么?,web-services,rest,Web Services,Rest,我的一个web服务返回一个人所拥有的项目的ID列表。也就是说,当我得到项目列表时,我会返回xml。但是,当我指定user=xxx时,谁不存在,我当前返回404响应?这是返回的正确响应吗 谢谢。从“程序需要做些什么”的角度来看,不存在的用户和没有分配任何项目的用户之间有什么区别吗?如果不是,则在任何一种情况下都返回一个空列表 如果存在差异,那么可能会添加一个MessageCode/MessageText字段,如果用户不存在,则填写该字段,同时添加一个空白列表 在任何一种情况下,我都不认为404是合

我的一个web服务返回一个人所拥有的项目的ID列表。也就是说,当我得到项目列表时,我会返回xml。但是,当我指定user=xxx时,谁不存在,我当前返回404响应?这是返回的正确响应吗

谢谢。

从“程序需要做些什么”的角度来看,不存在的用户和没有分配任何项目的用户之间有什么区别吗?如果不是,则在任何一种情况下都返回一个空列表

如果存在差异,那么可能会添加一个MessageCode/MessageText字段,如果用户不存在,则填写该字段,同时添加一个空白列表


在任何一种情况下,我都不认为404是合适的——该网站是存在的,404表明实际的web请求有问题。

这确实是一个意见问题。许多web服务,如Twitter,在有意义时经常使用HTTP返回码(例如,如果用户凭据错误,则使用401 Unauthorized),其他服务仅返回XML格式的错误对象,而其他服务则不返回任何内容。实际上,这一切都取决于您的设计。

如果用户无权访问该页面,我将返回404。通常,您会返回403(或401),但在某些情况下,404很有意义,因为您希望显示页面,好像页面根本不存在一样。这取决于具体情况。

同意。这与方法抛出异常或返回null或false值的选择相同。有些时候,异常是有意义的,因为您可以轻松捕获它们,但有时返回null或false效果更好。更多信息请参见: