web-dev-qa-db-fra.com

Ressource RESTful introuvable. 404 ou 204? Jersey retourne 204 sur null retourné par le gestionnaire

Si vous cherchez /Resource/Id et cette ressource n'existe pas, j'avais toujours pensé que 404 était la réponse appropriée. Cependant, lorsque je retourne null à partir d'un gestionnaire Jersey, je récupère un "204 No Content". Je peux probablement travailler avec l'un ou l'autre, mais je suis curieux de savoir ce que pensent les autres.

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

    if (a == null)
        throw new WebApplicationException(404);
40
jr.

Définition du 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, cela vous montre simplement qu'il n'y a rien à retourner (vous vous attendez généralement si vous effectuez un appel POST ou PUT qui n'a pas besoin de renvoyer quoi que ce soit)

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

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

50
Diego Dias