当前位置: 首页 > 知识库问答 >
问题:

当搜索操作在asp中找不到元素时,返回NotFound状态代码或状态代码为200的空列表。net web api调用?

欧阳正德
2023-03-14

像GetEmployees这样的mvcwebapi调用搜索员工对象列表,但没有找到。这不是错误条件,因为在业务上下文中列表可以为空是可以接受的。

搜索没有失败,只是什么也没找到。

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

  1. 返回http状态代码为HttpStatusCode的响应消息。找不到,或
  2. 返回状态代码200并返回空列表,或
  3. 还有别的吗

共有1个答案

墨星鹏
2023-03-14

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

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

请参阅RFC 2616-超文本传输协议-HTTP/1.1:

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

超文本传输协议(HTTP/1.1):语义和内容:

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

REST:映射404 HTTP状态代码:

如果URL应该返回一个[...]表示,那么如果代码不存在,应该返回404。如果URL返回一个[...]结果那么它不应该返回404。

因此,您可以考虑返回204 No Content,或者返回一个200,或者返回一个空主体,或者返回一个指示空集合的响应。

 类似资料:
  • 我有一个Restendpoint,如果没有产品,它将返回204,以及以下通用角度服务: 和 但是,当服务生成 204 代码时,我收到以下错误: TypeError:无法读取null的属性“status” 这怎么可能发生?如果 API 以 204 响应,为什么整个响应为空?

  • 我正在尝试使用BitBucket GIT存储库设置Jenkins,但Jenkins控制台总是给我以下错误代码: 我尝试过很多不同的方法,但总是失败。我的服务器上允许9418端口上的通信量。服务器处于1 Gbps连接上。

  • 我正在寻找在我的. NET Core Web API控制器中返回带有HTTP状态代码的JSON的正确方法。我过去是这样使用它的: 这是一个4.6 MVC应用程序,但现在有了。NET Core我似乎没有这个IHttpActionResult,我有ActionResult,使用如下: 但是服务器的响应很奇怪,如下图所示: 我只希望Web API控制器返回JSON和HTTP状态代码,就像我在Web AP

  • 我正在做一个新项目,我想实现一个“等到网站打开”功能,如果http://switch-check.cf/index.php打开,然后继续。 现在,在我的帮助下。htaccess和php我尽了最大的努力。禁止访问php文件。因此,如果你试图访问我提到的网页,你应该得到一个 403拒绝访问 因此,我使用urllib(也尝试了请求)查看网站是否已打开或仍处于禁止访问状态然而,无论我尝试什么,我总是得到2

  • 目前,我正在尝试使用Flux通过WebClient从服务器端获取消息。我想检查我是否可以处理非2xx HTTP状态情况的异常。在接收消息期间,我会停止服务器。在这种情况下,我希望通过我的自定义异常获得500个状态代码,但它会通过我的自定义异常返回200个状态代码。 您可以在下面找到输出日志(粗体部分很重要) 以下是客户端代码: 在这种情况下,我错过了什么?

  • 问题内容: 我们正在使用Flask作为我们的API之一,我只是想知道是否有人知道如何返回HTTP响应201? 对于诸如404之类的错误,我们可以致电: 但是对于201我得到 LookupError:201都不例外 我是否需要创建自己的例外,像这样的文档? 问题答案: 你可以在这里阅读。