找不到RESTful资源。 404或204? 泽西从处理程序返回null返回204
如果你正在寻找/Resource/Id
和资源不存在,我一直认为,404是适当的回应。 但是,当从Jersey处理程序返回null
时,我会返回“204无内容”。 我可以和任何一个人一起工作,但很好奇别人对此的想法。
回答我自己的下一个问题。 要让泽西返回404,你必须抛出exception。
if (a == null) throw new WebApplicationException(404);
HTTP代码定义指出以2开头的代码用于成功的呼叫,而4代表不成功的呼叫。
-
当你得到204时,它只是告诉你没有任何东西可以返回(通常你期望如果你做了一个POST或者PUT调用,不需要返回任何东西)
-
当你得到一个404的时候说明这个调用是不成功的,所以它不会返回任何东西。
在你的情况下,404是适当的,而不是204! 既然你可能想对打电话的人说他打错了电话。