Ressource RESTful introuvable. 404 ou 204? Jersey renvoie 204 sur null renvoyé par le gestionnaire

Si vous recherchez /Resource/Id et que cette ressource n’existe pas, j’ai toujours pensé que 404 était la réponse appropriée. Cependant, lorsque je retourne null à un gestionnaire de Jersey, je récupère un “204 No Content”. Je peux probablement travailler avec l’un ou l’autre, mais je suis curieux aux autres pensées à ce sujet.

Pour répondre à ma propre question suivante. Pour que Jersey retourne 404, vous devez lancer une exception.

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

La définition de code HTTP indique que les codes commençant par 2 sont pour les appels réussis et 4 pour les appels infructueux.

  • Lorsque vous obtenez le 204, il vous montre simplement qu’il n’y a rien à retourner (en général, vous vous attendez à un appel POST ou PUT qui n’a pas besoin de retourner quoi que ce soit)

  • Lorsque vous obtenez un 404, il indique que l’appel a échoué, donc il ne renverra rien.

Dans votre situation, le 404 est approprié, pas le 204! Puisque vous voulez probablement dire à l’appelant qu’il a fait un mauvais appel.