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à.
Imposta le mappature dei dati di richiesta e risposta utilizzando la console Gateway API
Per utilizzare la console API Gateway per definire la richiesta/risposta API di integrazione, segui queste istruzioni.
Nota
Queste istruzioni presuppongono che sia già stata completata la procedura in Configurazione di una richiesta di integrazione API tramite la console API Gateway.
-
Nel riquadro Risorse, scegli il tuo metodo.
-
Nella scheda Richiesta di integrazione scegli Modifica in Impostazioni della richiesta di integrazione.
-
Scegliete un'opzione per Request body passthrough per configurare in che modo il corpo della richiesta del metodo di un tipo di contenuto non mappato verrà passato attraverso la richiesta di integrazione senza trasformazione nella funzione Lambda, HTTP proxy o proxy di servizio. AWS Sono disponibili tre opzioni:
-
Seleziona Quando nessun modello corrisponde all'intestazione Content-Type della richiesta se vuoi che il corpo della richiesta di metodo venga passato attraverso la richiesta di integrazione al back-end senza trasformazione quando il tipo di contenuto della richiesta di metodo non corrisponde a nessuno dei tipi di contenuto associati ai modelli di mappatura, come illustrato nella prossima fase.
-
Selezionare When there are no templates defined (recommended) (Quando non ci sono modelli definiti (consigliato)) se di desidera che il corpo della richiesta di metodo venga passato attraverso la richiesta di integrazione al back-end senza trasformazione quando nella richiesta di integrazione non è stato definito un modello di mappatura. Se viene definito un modello quando viene selezionata questa opzione, la richiesta del metodo di un tipo di contenuto non mappato verrà rifiutata con una risposta HTTP 415 Unsupported Media Type.
-
Selezionare Never (Mai) se non si desidera che la richiesta di metodo venga passata quando il tipo di contenuto della richiesta di metodo non corrisponde a nessuno dei tipi di contenuto associati ai modelli di mappatura definiti nella richiesta di integrazione o quando nessun modello di mappatura viene definito nella richiesta di integrazione. La richiesta del metodo di un tipo di contenuto non mappato verrà rifiutata con una risposta HTTP 415 Unsupported Media Type.
Per ulteriori informazioni sui comportamenti passthrough di integrazione, consulta Comportamenti passthrough di integrazione.
-
-
Per un HTTP proxy o un proxy di AWS servizio, per associare un parametro path, un parametro della stringa di query o un parametro di intestazione definito nella richiesta di integrazione con un parametro path, un parametro di stringa di query o un parametro di intestazione corrispondente nella richiesta del metodo del HTTP proxy o del proxy di AWS servizio, procedi come segue:
-
Scegliete rispettivamente i parametri del URL percorso, i parametri della stringa di URL query o le intestazioni della HTTP richiesta, quindi scegliete rispettivamente Aggiungi percorso, Aggiungi stringa di query o Aggiungi intestazione.
-
Per Nome, digitate il nome del parametro path, del parametro della stringa di query o del parametro di intestazione nel proxy o AWS nel HTTP proxy del servizio.
-
Per Mappato da immetti il valore della mappatura del parametro di percorso, del parametro di stringa di query o del parametro di intestazione. Utilizza uno dei seguenti formati:
-
method.request.path.
per un parametro di percorso denominatoparameter-name
parameter-name
come definito nella pagina di richiesta del metodo. -
method.request.querystring.
per un parametro della stringa di query denominatoparameter-name
parameter-name
come definito nella pagina di richiesta del metodo. -
method.request.multivaluequerystring.
per un parametro di stringa di query multivalore denominatoparameter-name
parameter-name
come definito nella pagina di richiesta del metodo. -
method.request.header.
per un parametro di intestazione denominatoparameter-name
parameter-name
come definito nella pagina di richiesta del metodo.In alternativa, puoi impostare un valore letterale della stringa (inserito in una coppia di virgolette singole) su un'intestazione di integrazione.
-
method.request.multivalueheader.
per un parametro di intestazione multivalore denominatoparameter-name
parameter-name
come definito nella pagina di richiesta del metodo.
-
-
Per aggiungere un altro parametro, scegli il pulsante Aggiungi.
-
-
Per aggiungere un modello di mappatura, scegli Modelli di mappatura.
-
Per definire un modello di mappatura per una richiesta in ingresso, scegli Aggiungi modello di mappatura. Per Tipo di contenuto immetti un tipo di contenuto (ad esempio,
application/json
). Quindi, inserisci il modello di mappatura. Per ulteriori informazioni, consulta Modelli di mappatura per REST APIs. Seleziona Save (Salva.
-
È possibile mappare una risposta di integrazione dal backend a una risposta di metodo dell'app API restituita all'app chiamante. Ciò include la restituzione al client delle intestazioni di risposta selezionate tra quelle disponibili dal backend, la trasformazione del formato dei dati del payload di risposta del backend in un formato specificato. API Puoi specificare la mappatura configurando Risposta metodo e Risposte di integrazione.
Per fare in modo che il metodo riceva un formato di dati di risposta personalizzato basato sul codice di HTTP stato restituito dalla funzione Lambda, dal proxy o dal HTTP proxy di AWS servizio, procedi come segue:
-
Scegli Risposte di integrazione. Scegliete Modifica sul valore predefinito - Risposta per specificare le impostazioni per un codice di HTTP risposta di 200 dal metodo, oppure scegliete Crea risposta per specificare le impostazioni per qualsiasi altro codice di stato della HTTP risposta del metodo.
-
Per l'espressione regolare di errore Lambda (per una funzione Lambda) o l'espressione regolare di HTTP stato (per un HTTP proxy o un proxy di AWS servizio), immettete un'espressione regolare per specificare quali stringhe di errore della funzione Lambda (per una funzione Lambda) o codici di stato della HTTP risposta (per un proxy o proxy di servizio) vengono mappate a questa mappatura di output. HTTP AWS Ad esempio, per mappare tutti i codici di stato della HTTP risposta 2xx da un HTTP proxy a questa mappatura di output, digitate "" come espressione regolare di stato.
2\d{2}
HTTP Per restituire un messaggio di errore contenente "Invalid Request" da una funzione Lambda a una risposta400 Bad Request
, digita ".*Invalid request.*
" per Espressione regolare errore Lambda. Per restituire invece400 Bad Request
per tutti i messaggi di errore non mappati da Lambda, immetti "(\n|.)+
" in Espressione regolare errore Lambda. Quest'ultima espressione regolare può essere utilizzata per la risposta di errore predefinita di un. APINota
APIGateway utilizza espressioni regolari in stile pattern Java per la mappatura delle risposte. Per ulteriori informazioni, vedi Modello
nella Oracle documentazione. I modelli di errore vengono confrontati con la stringa intera della proprietà
errorMessage
nella risposta Lambda, popolata dacallback(errorMessage)
in Node.js o dathrow new MyException(errorMessage)
in Java. Inoltre, i caratteri con escape sono senza escape prima che venga applicata l'espressione regolare.Se si utilizza "+" come modello di selezione per filtrare le risposte, considera che potrebbe non corrispondere a una risposta contenente un carattere di nuova riga ("\n").
-
Se abilitato, per Method response status, selezionate il codice di stato della HTTP risposta definito nella pagina Method response.
-
Per le mappature degli header, per ogni intestazione definita per il codice di stato della HTTP risposta nella pagina Method response, specificate un valore di mappatura. Per Mapping valore (Valore mappatura), utilizzare uno dei seguenti formati:
-
integration.response.multivalueheaders.
doveheader-name
header-name
è il nome di un'intestazione di risposta multivalore del backend.Ad esempio, per restituire l'intestazione della risposta del backend come
Date
intestazione della risposta di un API metodo, la colonna di intestazione della risposta conterrà una voce Timestamp e il valore di mappatura associato deve essere impostato su Integration.Response.MultivalueHeaders.date.Timestamp
-
integration.response.header.
doveheader-name
header-name
è il nome di un'intestazione di risposta a valore singolo proveniente dal backend.Ad esempio, per restituire l'intestazione della risposta del backend come
Date
intestazione della risposta di un API metodo, la colonna di intestazione dellaTimestamp
risposta conterrà una voce Timestamp e il valore di mappatura associato deve essere impostato su Integration.Response.Header.Date.
-
-
Scegli Modelli di mappatura, quindi seleziona Aggiungi modello di mappatura. Nella casella Tipo di contenuto, inserisci il tipo di contenuto dei dati che verranno passati dalla funzione Lambda, dal proxy o dal HTTP proxy di AWS servizio al metodo. Quindi, inserisci il modello di mappatura. Per ulteriori informazioni, consulta Modelli di mappatura per REST APIs.
-
Seleziona Save (Salva.
-