找不到RESTful资源。 404还是204? Jersey从处理程序返回null返回204

时间:2010-02-03 21:35:20

标签: rest jersey

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

回答我自己的下一个问题。要让泽西岛返回404,你必须抛出异常。

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

1 个答案:

答案 0 :(得分:50)

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

  • 当你得到204它只是告诉你没有什么可以返回(通常你期望你做一个不需要返回任何东西的POST或PUT调用)

  • 当你收到404时,它表示通话失败,所以它不会返回任何内容。

在你的情况下,404是合适的,而不是204!因为你可能想告诉来电者他打错了电话。