2017-02-08 3 views
0

Ich habe meine GET API über AWS API Gateway konfiguriert. Auf dem Endpunkt wird ein Jersey 2.x-REST-Dienst ausgeführt.AWS API Gateway gibt HTTP zurück 406

Der Client kann einen Header "Accept" nicht einfügen, und das API-Gateway sieht seine eigene "Accept": "application/json" -Kopfzeile an.

Dieser den Server die Anforderung mit HTTP-406, als serverseitige API zum Scheitern verursacht hat eine ‚@Produces (MediaType.APPLICATION_OCTET_STREAM‘ Notation.

Hat jemand eine Idee, wie ich die API stoppen Gateway von diesem ohne Rückgriff auf Lambda?

Antwort

0

Sie können dies durch Hinzufügen einer Kopfzeile in der Integrationsanforderung überschreiben.Sie fügen den Kopfzeilennamen Accept und legen Sie den Wert auf leere einfache Anführungszeichen ''.Dies sollte eine leere Accept-Header senden zum Endpunkt

Oder Sie ca n setze den Wert auf etwas anderes, wenn nötig, benutze einfache Anführungszeichen wie oben 'application/octet-stream'

+0

Ich habe das schon einmal versucht, aber wegen eines Fehlers in APIG kam der zurückgegebene 'Content-Type' Wert von APIG zurück als ' \ */\ * '. Nach dem Aufstellen eines Supporttickets ist jetzt alles in Ordnung. :) – Earthling

+0

Pflege dich, um mit der Lösung vom Support dann zu aktualisieren? Vielen Dank! –

+0

Nun, Support hat im Grunde gesagt, dass das, was ich versucht habe, was Ihrer vorgeschlagenen Antwort ähnlich ist, korrekt war, und sie haben neuen Code in APIG implementiert, um den Fehler zu beheben. – Earthling