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à.
Richiedi la convalida delle API in WebSocket API Gateway
Puoi configurare API Gateway per eseguire la convalida su una route prima di passare alla richiesta di integrazione. Se la convalida fallisce, API Gateway fallisce la richiesta senza chiamare il backend, invia una risposta gateway «Bad request body» al client e pubblica i risultati della convalida in Logs. CloudWatch L'utilizzo della convalida in questo modo riduce le chiamate non necessarie al back-end dell'API.
Espressioni di selezione del modello
Puoi utilizzare un'espressione di selezione del modello per convalidare dinamicamente le richieste all'interno della stessa route. La convalida del modello si verifica se si fornisce un'espressione di selezione del modello per integrazioni proxy o non proxy. Potrebbe essere necessario definire il modello $default
come un fallback quando non viene trovato alcun modello corrispondente. Se non esiste un modello corrispondente e $default
non è definito, la convalida non va a buon fine. L'aspetto dell'espressione di selezione è simile a Route.ModelSelectionExpression
e valuta la chiave per Route.RequestModels
.
Quando definisci un percorso per un' WebSocket API, puoi facoltativamente specificare un'espressione di selezione del modello. Questa espressione viene valutata per selezionare il modello da utilizzare per la convalida del corpo quando si riceve una richiesta. L'espressione restituisce una delle voci presenti nel di una route requestmodels
.
Un modello viene espresso come schema JSON
Configurazione della convalida delle richieste tramite la console Gateway Amazon API
L'esempio seguente mostra come impostare la convalida delle richieste su un percorso.
Innanzitutto, crei un modello e poi crei un percorso. Successivamente, configuri la convalida della richiesta sulla rotta appena creata. Infine, implementate e testate la vostra API. Per completare questo tutorial, hai bisogno di un' WebSocket API $request.body.action
come espressione di selezione del percorso e di un endpoint di integrazione per la tua nuova rotta.
Per la connessione all'API è inoltre necessario wscat
. Per ulteriori informazioni, consulta Utilizzalo wscat per connetterti a un' WebSocket API e inviarle messaggi.
Creazione di un modello
Accedere alla console API Gateway all'indirizzo https://console.aws.amazon.com/apigateway
. Scegli un' WebSocket API.
Nel riquadro di navigazione principale seleziona Modelli.
Scegli Crea modello.
Per Nome, immetti
emailModel
.Per Tipo di contenuto inserisci
application/json
.Per Schema modello immetti il seguente modello:
{ "$schema": "http://json-schema.org/draft-04/schema#", "type" : "object", "required" : [ "address"], "properties" : { "address": { "type": "string" } } }
Questo modello richiede che la richiesta contenga un indirizzo email.
Selezionare Salva.
In questo passaggio, crei un percorso per la tua WebSocket API.
Per creare una route
Nel pannello di navigazione principale, scegli Percorsi.
Selezionare Create Route (Crea route).
Per Route key (Chiave routing), inserire
sendMessage
.Scegli un tipo di integrazione e specifica un endpoint di integrazione. Per ulteriori informazioni, consulta Integrazioni per WebSocket API in API Gateway.
Selezionare Create Route (Crea route).
In questo passaggio, si imposta la convalida della richiesta per il sendMessage
percorso.
Per impostare la convalida della richiesta
Nella scheda Richiesta di percorso, in Impostazioni di richiesta di percorso, scegli Modifica.
Per Espressione di selezione del modello, immettete
${request.body.messageType}
.API Gateway utilizza la
messageType
proprietà per convalidare la richiesta in arrivo.Scegli Aggiungi modello di richiesta.
Per Model key, inserisci
email
.Per Modello, scegli EmailModel.
API Gateway convalida i messaggi in arrivo con la
messageType
proprietà impostata suemail
rispetto a questo modello.Nota
Se API Gateway non è in grado di abbinare l'espressione di selezione del modello a una chiave del modello, seleziona il
$default
modello. Se non esiste un$default
modello, la convalida fallisce. Per le API di produzione, ti consigliamo di creare un$default
modello.Seleziona Salvataggio delle modifiche.
In questa fase, distribuisci e testerai la tua API.
Per distribuire e testare la tua API
Seleziona Deploy API (Distribuisci API).
Scegliere la fase desiderata dall'elenco a discesa oppure immettere il nome di una nuova fase.
Seleziona Deploy (Implementa).
Nel riquadro di navigazione principale scegli Fasi.
Copia l' WebSocket URL della tua API. L'URL dovrebbe essere del tipo
wss://
.abcdef123
.execute-api.us-east-2
.amazonaws.com/productionApri un nuovo terminale ed esegui il wscat comando con i seguenti parametri.
wscat -c wss://
abcdef123
.execute-api.us-west-2
.amazonaws.com/productionConnected (press CTRL+C to quit)
Usa il seguente comando per testare la tua API.
{"action": "sendMessage", "messageType": "email"}
{"message": "Invalid request body", "connectionId":"ABCD1=234", "requestId":"EFGH="}
API Gateway non riuscirà a completare la richiesta.
Usa il comando successivo per inviare una richiesta valida alla tua API.
{"action": "sendMessage", "messageType": "email", "address": "mary_major@example.com"}