Asp.net mvc 4 当搜索操作在asp.net web api调用中未找到任何元素时,是否返回NotFound状态代码或状态代码为200的空列表?

Asp.net mvc 4 当搜索操作在asp.net web api调用中未找到任何元素时,是否返回NotFound状态代码或状态代码为200的空列表?,asp.net-mvc-4,asp.net-web-api,Asp.net Mvc 4,Asp.net Web Api,mvc web api调用(如GetEmployees)搜索员工对象列表,但没有找到任何对象。 这不是错误条件,因为在业务上下文中,列表可以为空是可以接受的 搜索没有失败,只是没有找到任何东西 形成回应的最佳方式是什么?我应该吗 返回http状态代码为HttpStatusCode.NotFound的响应消息,或 返回状态代码200并返回空列表,或 还有别的吗 返回404表示请求的资源不可用,例如GET/employees/42中不存在具有该ID的员工 您的员工集合确实存在,它只是空的,所以404

mvc web api调用(如GetEmployees)搜索员工对象列表,但没有找到任何对象。 这不是错误条件,因为在业务上下文中,列表可以为空是可以接受的

搜索没有失败,只是没有找到任何东西

形成回应的最佳方式是什么?我应该吗

  • 返回http状态代码为HttpStatusCode.NotFound的响应消息,或
  • 返回状态代码200并返回空列表,或
  • 还有别的吗

  • 返回404表示请求的资源不可用,例如
    GET/employees/42
    中不存在具有该ID的员工

    您的员工集合确实存在,它只是空的,所以404不合适

    见:

    服务器未找到任何与请求URI匹配的内容

    :

    404(未找到)状态代码表示源服务器未找到目标资源的当前表示形式,或者不愿意透露存在该表示形式

    :

    如果URL应该返回[…]表示,那么如果代码不存在,则应该返回404。如果URL返回[…]结果,则不应返回404


    <>你可以考虑返回204个内容,或者200个空的正文或一个表示空集合的响应。

    你能更明确地说明你所提倡的(我假定是OPS选项2,但是你目前的答案并不能使它完全清楚)