2 votes

Quelle réponse dois-je envoyer lorsque mon api web ne peut pas exécuter une action en raison d'un service tiers ?

Je travaille sur une API Web C# écrite en dotnet core. Je me débats avec le retour d'une action qui tente de récupérer des données d'un service tiers sur un autre serveur. Dans l'éventualité où quelque chose ne fonctionnerait pas lors de la tentative d'obtention de données à partir dudit service tiers, la réponse HTTP qui me semble la plus logique en regardant l'action spec était 502 Bad Gate Gateway car

Le serveur, qui agit comme une passerelle ou un proxy, a reçu un message non valide. réponse invalide de la part du serveur en amont auquel il a accédé en tentant de de répondre à la demande.

Mais je ne trouve pas le moyen de le renvoyer dans mon action. IActionResult ne semble pas avoir d'implémentation pour ce code. Ai-je bien réfléchi à la question ?

3voto

RichardMc Points 437

L'Api Web contient quelques méthodes de raccourci que vous devriez utiliser lorsque c'est possible, mais il n'y en a que quelques-unes pour certains des codes d'erreur les plus courants qui sont lancés.

Ce qui suit renvoie uniquement le StatusCode :

return StatusCode(HttpStatusCode.BadGateway);

les retours les plus courants sont :

return NotFound() // 404
return Ok() //200
return InternalServerError() //500

Ce que vous devriez vous demander, c'est s'il est absolument nécessaire de renvoyer ce code d'erreur exact. Votre front-end a-t-il besoin de le savoir ? Si vous gérez déjà l'enregistrement de l'exception dans l'API, vous devriez probablement renvoyer quelque chose de plus générique comme InternalServerError() .

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