Si la page elle-même n'existe pas, j'utiliserai évidemment 404.
Ce que vous avez dit ici est un peu confus, mais je dois supposer que vous développez une API backend.
Le problème est que la personne qui consomme le point de terminaison de l'API peut être désorientée de deux manières :
- Ils peuvent penser que le 404 renvoyée est due au fait que le point de terminaison (ressource) n'a pas été atteint, Ou
- Ils peuvent penser que l'élément ou l'utilisateur demandé n'a pas été trouvé.
Le problème est donc de savoir comment ils vont savoir quelle est la bonne hypothèse.
La réponse est simple. Essayez toujours d'attacher un corps à toute erreur renvoyée par le code. Les erreurs renvoyées automatiquement par le serveur n'ont pas de corps. Essayez donc de joindre un corps que vous pouvez documenter afin qu'ils puissent utiliser le contenu du corps pour différencier les erreurs renvoyées par le code des erreurs renvoyées par le serveur.
Mais en résumé, 404 est le bon statut à renvoyer, mais essayez d'y attacher un corps indiquant pourquoi 404 a été renvoyée.
Voici un exemple :
// For illustration I'm just gonna use C#
Return NotFound(new { errorMessage: "Item requested was not found" });
Ici, NotFound
renvoie un 404 et le paramètre est un objet comme { errorMessage: "some reason for the error"}
. De cette façon, vous pouvez toujours vérifier si votre erreur a renvoyé un corps, et vous savez qu'il a été renvoyé par votre code. Sinon, la ressource (lien) n'a pas été trouvée.