未找到 RESTful 资源。 404还是204?当处理程序返回 null 时,Jersey 返回 204

标签 rest jersey

如果您正在寻找 /Resource/Id 并且该资源不存在,我一直认为 404 是合适的响应。但是,当从 Jersey 处理程序返回 null 时,我得到“204 No Content”。我可能可以与其中任何一个合作,但很好奇其他人对此的想法。

回答我自己的下一个问题。要让 Jersey 返回 404,您必须抛出异常。

    if (a == null)
        throw new WebApplicationException(404);

最佳答案

HTTP Code Definition说明以2开头的代码表示调用成功,以4开头的代码表示调用不成功。

  • 当您收到 204 时,它只是显示没有任何内容可返回(通常您希望进行不需要返回任何内容的 POST 或 PUT 调用)

  • 当您收到 404 时,它表明调用不成功,因此不会返回任何内容。

根据您的情况,404 是合适的,而不是 204!因为您可能想告诉调用者他打错了电话。

关于未找到 RESTful 资源。 404还是204?当处理程序返回 null 时,Jersey 返回 204,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2195639/

相关文章:

java - 带参数改造 GET 请求

javascript - AJAX 使用或支持哪些 HTTP 方法?

rest - Jersey 的多个 ContainerRequestFilter

maven - 如何使用 Jersey 轻松运行 Web 应用程序?

ruby-on-rails - 如何从 rest api 返回 pdf 文件?

ruby - RFC2616 : Do I really need to set WWW_Authenticate when returning 401?

java - Spring Boot REST API - 显示信息的问题

java - 使用构建器模式编码解码不可变对象(immutable对象)的最佳方法

jakarta-ee - Jersey:在不使用 web.xml 文件的情况下禁用 OPTIONS 请求的自动 Wadl 生成?

java - 访问 Tomcat 服务器上的 Web 应用程序资源时出现 NoSuchMethodError