像GetEmployees这样的mvc web api调用会搜索员工对象列表但却找不到。 这不是错误条件,因为在业务环境中可以接受列表可以为空。
搜索没有失败,它只是没找到任何东西。
形成回复的最佳方式是什么?我应该
答案 0 :(得分:5)
通过返回404,您说所请求的资源不可用,例如GET /Emplyees/42
,其中具有该ID的员工不存在。
您的员工集合确实存在,它只是空的,因此404不合适。
请参阅RFC 2616 - Hypertext Transfer Protocol -- HTTP/1.1:
服务器未找到与Request-URI匹配的任何内容。
Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content:
404(未找到)状态代码表示源服务器未找到目标资源的当前表示,或者不愿意透露该目标资源是否存在。
REST: Mapping 404 HTTP Status codes:
如果URL应该返回[...]表示,那么如果代码不存在则应返回404。如果URL返回[...]结果,则它不应返回404。
因此,您可以考虑返回204 No Content,或200,其中包含空体或指示空集合的响应。