40 votes

Ressource RESTful introuvable. 404 ou 204? Jersey retourne 204 sur null étant retourné 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" d'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 de savoir ce que pensent les autres.

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

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

50voto

Diego Dias Points 6879

Le Code HTTP Définition stipule que les codes commençant par 2 pour la réussite des appels et 4 du rejet des autres.

  • Lorsque vous obtenez la 204 il vous montre qu'il n'y a rien de retour (généralement vous attendre si vous faites un POST ou PUT appel qui n'a pas besoin de retourner quoi que ce soit)

  • Lorsque vous obtenez une erreur 404, il déclare que l'appel a échoué, de sorte qu'il ne retournera rien.

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X