Datentransformationen für WebSocket-APIs in API Gateway
In API Gateway kann eine WebSocket-API-Methodenanforderung eine Nutzlast in einem anderen Format als dem der entsprechenden Integrationsanforderungsnutzlast entgegennehmen, das das Backend erfordert. Das Backend wiederum kann eine Integrationsantwortnutzlast zurückgeben, die nicht der Methodenantwortnutzlast entspricht, die das Frontend erwartet.
In Amazon API Gateway können Sie Zuweisungsvorlagen verwenden, um die Nutzlast einer Methodenanforderung der entsprechenden Integrationsanforderung zuzuordnen bzw. die Nutzlast einer Integrationsanforderung der entsprechenden Methodenantwort zuzuordnen. Sie geben einen Vorlagen-Auswahlausdruck an, um zu bestimmen, welche Vorlage für die erforderlichen Datentransformationen verwendet werden soll.
Sie können Datenzuordnungen verwenden, um Daten aus einer Routenanforderung einer Backend-Integration zuzuordnen. Weitere Informationen hierzu finden Sie unter Datenzuordnung für WebSocket-APIs in API Gateway einrichten.
Zuweisungsvorlagen und Modelle
Eine Zuweisungsvorlage ist ein in Velocity Template Language (VTL)
Die Nutzlast kann ein dem JSON-Schema Entwurf 4
Vorlagen-Auswahlausdrücke
Um einen Payload mit einer Zuordnungsvorlage zu transformieren, geben Sie einen WebSocket-API-Vorlagenauswahlausdruck in einer Integrationsanforderung oder Integrationsantwort an. Durch Auswerten dieses Ausdrucks wird die Eingabe- oder Ausgabevorlage (falls vorhanden) bestimmt, die zum Transformieren des Anforderungstexts in den Integrationsanforderungstext (über eine Eingabevorlage) oder des Integrationsantworttext in den Routenantworttext (über eine Ausgabevorlage) verwendet werden soll.
Integration.TemplateSelectionExpression
unterstützt ${request.body.jsonPath}
und statische Werte.
IntegrationResponse.TemplateSelectionExpression
unterstützt ${request.body.jsonPath}
, ${integration.response.statuscode}
, ${integration.response.header.headerName}
, ${integration.response.multivalueheader.headerName}
und statische Werte.
Integrationsantwort-Auswahlausdrücke
Wenn Sie eine Integrationsantwort für eine WebSocket-API einrichten, können Sie optional einen Integrationsantwort-Auswahlausdruck angeben. Dieser Ausdruck bestimmt, welche
ausgewählt werden sollte, wenn eine Integration zurückgegeben wird. Der Wert dieses Ausdrucks wird zurzeit durch API Gateway eingeschränkt, wie nachfolgend definiert. Beachten Sie, dass dieser Ausdruck nur für Nicht-Proxy-Integrationen relevant ist. Eine Proxy-Integration übergibt die Antwortnutzlast einfach ohne Modellierung oder Modifikation an die aufrufende Methode zurück.IntegrationResponse
Im Gegensatz zu den anderen vorhergehenden Auswahlausdrücken unterstützt dieser Ausdruck derzeit ein Musterabgleich-Format. Der Ausdruck sollte in Schrägstriche verpackt werden.
Derzeit ist der Wert je nach fixier
:integrationType
-
Für Lambda-basierte Integrationen lautet er
$integration.response.body.errorMessage
. -
Für
HTTP
- undMOCK
-Integrationen ist dies$integration.response.statuscode
. -
Für
HTTP_PROXY
undAWS_PROXY
wird der Ausdruck nicht verwendet, da Sie anfordern, dass die Nutzlast über die aufrufende Methode übergeben wird.