Éditeur php Apple vous propose une introduction à la réponse d'erreur de point de terminaison séquentielle KrakenD. KrakenD est une passerelle API hautes performances, mais vous pouvez rencontrer des erreurs lors de son utilisation. Parmi eux, la réponse séquentielle aux erreurs de point final est un problème courant. Cet article expliquera en détail les causes et les solutions des réponses d'erreur de point de terminaison séquentielles pour vous aider à mieux gérer ce problème et à améliorer la stabilité et les performances de la passerelle API.
version Krakend : 2.2.1 version go : go1.19.3
Je souhaite utiliser la fonctionnalité séquentielle de Krakend pour envoyer des requêtes séquentielles à deux points de terminaison différents.
Un bref résumé de mon cas :
Exemple de point de terminaison séquentiel :
{ "endpoint": "/companies/validate", "method": "GET", {{ include "input_headers.txt" }}, "backend": [ { "host": ["{{ .service.credential_service_url }}"], "url_pattern": "/tokens/validate", "method": "GET", "extra_config": { "backend/http": { "return_error_code": true } } }, { "host": ["{{ .service.company_service_url }}"], "url_pattern": "/companies/{resp0_companyId}/validate", "method": "GET", "extra_config": { "backend/http": { "return_error_code": true } } } ], "extra_config": { "proxy": { "sequential": true } } }
ide journal
Réponse du facteur
Comme vous pouvez le voir, le premier service fonctionne bien, le deuxième service renvoie une erreur, mais la réponse du facteur renvoie un succès.
Il s'agit du comportement attendu de KrakenD.
Lorsque vous effectuez plusieurs appels, KrakenD renverra tout ce qui est disponible ainsi qu'un code d'état 200 si au moins une demande réussit. Mais en échange, vous recevez un en-tête X-KrakenD-Complete: false
vous indiquant que quelque chose a échoué. Vous pouvez en savoir plus sur l'agrégation ici p>
Puisque vous utilisez un proxy séquentiel, lorsque la première requête échoue, il n'est pas nécessaire de faire autre chose car le prochain appel séquentiel sera automatiquement abandonné. Donc tout échoue et KrakenD ne peut rien retourner, c'est pourquoi vous obtenez l'échec souhaité.
Dans l'autre cas, puisque le premier appel fonctionne, KrakenD a quelque chose à retourner et vous recevez des données partielles.
Vous devez vérifier le contenu de l'en-tête X-KrakenD-Complete de votre client pour décider quoi faire
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!