Если Вы ищете /Resource/Id
и тот ресурс не существует, я всегда имел, хотя это 404 было соответствующим ответом. Однако при возврате null
от обработчика Джерси я не возвращаю "204 Содержания". Я могу, вероятно, работать с любым, но любопытен к мыслям других об этом.
Отвечать на мой собственный следующий вопрос. Чтобы заставить Джерси возвращаться 404, необходимо выдать исключение.
if (a == null)
throw new WebApplicationException(404);
В Определении кодов HTTP говорится, что коды, начинающиеся с 2, относятся к успешным вызовам, а 4 - к неуспешным.
Когда вы получаете код 204, он просто показывает, что возвращать нечего (обычно вы ожидаете, что если вы делаете вызов POST или PUT, то возвращать ничего не нужно)
Когда вы получаете код 404, он говорит, что вызов был неудачным, поэтому он ничего не возвращает.
В вашей ситуации уместен 404, а не 204! Поскольку вы, вероятно, хотите сказать звонящему, что он сделал неправильный звонок.