Heim > Artikel > Backend-Entwicklung > Sequentielle KrakenD-Endpunkt-Fehlerantwort
PHP-Editor Apple bietet Ihnen eine Einführung in die sequenzielle Endpunktfehlerreaktion von KrakenD. KrakenD ist ein leistungsstarkes API-Gateway, bei der Verwendung können jedoch einige Fehler auftreten. Unter diesen ist die sequentielle Endpunktfehlerreaktion ein häufiges Problem. In diesem Artikel werden die Ursachen und Lösungen sequenzieller Endpunktfehlerreaktionen ausführlich erläutert, um Ihnen dabei zu helfen, dieses Problem besser zu lösen und die Stabilität und Leistung des API-Gateways zu verbessern.
krakend-Version: 2.2.1 go-Version: go1.19.3
Ich möchte die sequentielle Funktionalität von Krakend nutzen, um sequentielle Anfragen an zwei verschiedene Endpunkte zu senden.
Eine kurze Zusammenfassung meines Falles:
Beispiel für einen sequentiellen Endpunkt:
{ "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 log
Antwort des Postboten
Wie Sie sehen, funktioniert der erste Dienst einwandfrei, der zweite Dienst gibt einen Fehler zurück, aber die Antwort des Postboten gibt einen Erfolg zurück.
Dies ist das erwartete Verhalten von KrakenD.
Wenn Sie mehrere Anrufe tätigen, gibt KrakenD alles zurück, was verfügbar ist, zusammen mit einem Statuscode 200, wenn mindestens eine Anfrage erfolgreich ist. Aber im Gegenzug erhalten Sie eine Kopfzeile X-KrakenD-Complete: false
, die Ihnen mitteilt, dass etwas fehlgeschlagen ist. Mehr über Aggregation können Sie hier lesen p>
Da Sie einen sequentiellen Proxy verwenden, müssen Sie nichts weiter tun, wenn die erste Anfrage fehlschlägt, da der nächste sequentielle Aufruf automatisch abgebrochen wird. Es schlägt also alles fehl und KrakenD kann nichts zurückgeben, weshalb Sie den gewünschten Fehler erhalten.
Im anderen Fall hat KrakenD etwas zurückzugeben, da der erste Aufruf funktioniert, und Sie erhalten Teildaten.
Sie sollten den Inhalt des X-KrakenD-Complete-Headers Ihres Kunden überprüfen, um zu entscheiden, was zu tun ist
Das obige ist der detaillierte Inhalt vonSequentielle KrakenD-Endpunkt-Fehlerantwort. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!