Configurazione di una risposta di integrazione per API WebSocket in Gateway API - Amazon API Gateway

Configurazione di una risposta di integrazione per API WebSocket in Gateway API

Nella sezione seguente viene illustrata una breve panoramica delle risposte di integrazione per API WebSocket e la modalità di configurazione di una risposta di integrazione per un'API WebSocket.

Panoramica delle risposte di integrazione

La risposta di integrazione di API Gateway è un metodo di creazione di modelli e di manipolazione della risposta da un servizio di back-end. La configurazione di un'API REST presenta alcune differenze rispetto a una risposta di integrazione API WebSocket, ma concettualmente il comportamento è identico.

Le route WebSocket possono essere configurate per la comunicazione bidirezionale o unidirezionale.

  • Quando una route è configurata per la comunicazione bidirezionale, una risposta di integrazione consente di configurare le trasformazioni sul payload del messaggio restituito, in modo analogo alle risposte di integrazione per le API REST.

  • Se una route è configurata per la comunicazione unidirezionale, a prescindere da qualsiasi configurazione della risposta di integrazione, non verrà restituita alcuna risposta sul canale WebSocket dopo che il messaggio viene elaborato.

API Gateway non trasferisce la risposta del back-end alla risposta di instradamento, a meno che non venga configurata una risposta di instradamento. Per informazioni sull'impostazione di una risposta di instradamento, consultare Configurazione delle risposte di instradamento per API WebSocket in Gateway API.

Risposte di integrazione per la comunicazione bidirezionale

Le integrazioni possono essere divise in integrazioni proxy e integrazioni non proxy.

Importante

Per le integrazioni proxy, API Gateway trasferisce automaticamente l'output del back-end all’intermediario come payload completo. Non esiste alcuna risposta di integrazione.

Per integrazioni non proxy, è necessario configurare almeno una risposta di integrazione:

  • Idealmente, una delle risposte di integrazione deve agire come un metodo catch-all quando non è possibile effettuare una scelta esplicita. Questo caso predefinito viene rappresentato impostando una chiave di risposta di integrazione di $default.

  • In tutti gli altri casi, la chiave di risposta di integrazione funziona come un'espressione regolare. Il formato adottato è "/expression/".

Per integrazioni HTTP non proxy:

  • API Gateway tenterà di trovare una corrispondenza con il codice di stato HTTP della risposta di back-end. In questo caso, la chiave di risposta di integrazione funzionerà come un'espressione regolare. Se non è possibile trovare una corrispondenza, viene scelta $default come risposta di integrazione.

  • L'espressione di selezione del modello, come descritto in precedenza, funziona in modo identico. Ad esempio:

    • /2\d\d/: ricevi e trasforma risposte andate a buon fine

    • /4\d\d/: ricevi e trasforma errori di richiesta non valida

    • $default: ricevi e trasforma tutte le risposte impreviste

Per ulteriori informazioni sulle espressioni di selezione del modello, consultare Espressioni di selezione del modello.

Configurazione di una risposta di integrazione mediante la console API Gateway

Per configurare una risposta di integrazione dell'instradamento per un'API WebSocket mediante la console API Gateway:

  1. Accedere alla console API Gateway all'indirizzo https://console.aws.amazon.com/apigateway.

  2. Scegliere la API WebSocket e quindi l'instradamento.

  3. Scegli la scheda Richiesta di integrazione, quindi seleziona Crea risposta di integrazione nella sezione Impostazioni della risposta di integrazione.

  4. Per Chiave della risposta inserisci un valore che verrà individuato nella chiave della risposta del messaggio in uscita dopo aver valutato l'espressione di selezione di risposta. Ad esempio, puoi inserire /4\d\d/ per ricevere e trasformare gli errori di richiesta non valida o $default per ricevere e trasformare tutte le risposte che corrispondono all'espressione di selezione del modello.

  5. Per Espressione di selezione del modello immetti un'espressione di selezione per valutare il messaggio in uscita.

  6. Scegli Crea risposta.

  7. È inoltre possibile definire un modello di mappatura per configurare le trasformazioni del payload dei messaggi restituiti. Scegli Crea modello.

  8. Immettere un nome per la chiave. Se è stata scelta l'espressione di selezione del modello predefinita, immettere\$default.

  9. Per Modello della risposta immetti il modello di mappatura nell'editor di codice.

  10. Scegli Crea modello.

  11. Scegli Implementa API per implementare l'API.

Per connettersi all'API, utilizzare il seguente comando wscat. Per ulteriori informazioni su wscat, consulta Utilizzo di wscat per connettersi a un'API WebSocket e inviare messaggi a essa.

wscat -c wss://api-id.execute-api.us-east-2.amazonaws.com/test

Quando viene richiamato l'instradamento, dovrebbe venire restituito il payload del messaggio restituito.

Configurazione di una risposta di integrazione mediante AWS CLI

Il comando create-integration-response seguente crea una risposta di integrazione $default:

aws apigatewayv2 create-integration-response \ --api-id vaz7da96z6 \ --integration-id a1b2c3 \ --integration-response-key '$default'