Trasformazioni dei dati per le API in WebSocket API Gateway - Amazon API Gateway

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Trasformazioni dei dati per le API in WebSocket API Gateway

In API Gateway, la richiesta del metodo di un' WebSocket API può accettare un payload in un formato diverso dal payload della richiesta di integrazione corrispondente, come richiesto nel backend. Analogamente, il back-end potrebbe restituire un payload delle risposta di integrazione diverso dal payload della risposta di metodo, in base alle aspettative del front-end.

API Gateway consente di utilizzare i modelli di mappatura per mappare il payload da una richiesta del metodo alla richiesta di integrazione corrispondente e da una risposta di integrazione alla corrispondente risposta del metodo. Specifica un'espressione di selezione del modello per determinare quale modello utilizzare per eseguire le trasformazioni dei dati necessarie.

È possibile utilizzare le mappature dei dati per mappare i dati da una richiesta di instradamento a un'integrazione back-end. Per ulteriori informazioni, consulta Configurare la mappatura dei dati per WebSocket APIs in API Gateway.

Modelli di mappatura e modelli

Un modello di mappatura è uno script espresso in Velocity Template Language (VTL) e applicato al payload tramite Espressioni JSONPath. Per ulteriori informazioni sui modelli di mappatura API Gateway, consulta Modelli di mappatura per REST APIs.

Il payload può avere un modello di dati in base alla bozza 4 dello schema JSON. Per generare un modello di mappatura, non è necessario definire un modello. Tuttavia, un modello può essere utile per crearne un altro, poiché API Gateway genera un piano di modello in base a un modello fornito. Per ulteriori informazioni sui modelli API Gateway, consulta Modelli di dati per REST APIs.

Espressioni di selezione del modello

Per trasformare un payload con un modello di mappatura, si specifica un'espressione di selezione del modello WebSocket API in una richiesta di integrazione o in una risposta di integrazione. Questa espressione viene valutata per determinare il modello di input o di output (se disponibili) da usare per trasformare il corpo della richiesta nel corpo della richiesta di integrazione (tramite un modello di input) o il corpo della risposta di integrazione nel corpo della risposta di instradamento (tramite un modello di output).

Integration.TemplateSelectionExpression supporta ${request.body.jsonPath} e valori statici.

IntegrationResponse.TemplateSelectionExpression supporta ${request.body.jsonPath}, ${integration.response.statuscode}, ${integration.response.header.headerName}, ${integration.response.multivalueheader.headerName} e valori statici.

Espressioni di selezione della risposta di integrazione

Quando imposti una risposta di integrazione per un' WebSocket API, puoi facoltativamente specificare un'espressione di selezione della risposta di integrazione. Questa espressione determina quale IntegrationResponse deve essere selezionata quando viene restituita un'integrazione. Il valore di questa espressione è attualmente limitato da API Gateway, come definito di seguito. Tieni presente che questa espressione è rilevante solo per le integrazioni non proxy; un'integrazione proxy restituisce semplicemente il payload della risposta all'intermediario senza alcuna modellazione o modifica.

A differenza di altre espressioni di selezione precedenti, questa espressione supporta attualmente un formato di corrispondenza di modelli. L'espressione deve essere racchiusa tra barre.

Attualmente il valore è fisso e dipende dal valore di integrationType:

  • Per le integrazioni basate su Lambda, è $integration.response.body.errorMessage.

  • Per le integrazioni HTTP e MOCK, è $integration.response.statuscode.

  • Per HTTP_PROXY e AWS_PROXY, l'espressione non viene utilizzata poiché si richiede che il payload raggiunga il chiamante.