Comportamenti passthrough di integrazione
Con le integrazioni non proxy, quando una richiesta di metodo porta un payload e l'intestazione Content-Type
non corrisponde a nessun modello di mappatura specificato o non è stato definito un modello di mappatura, puoi decidere di passare il payload della richiesta fornito dal client attraverso la richiesta di integrazione al back-end senza trasformazione. Il processo è noto come passthrough di integrazione.
Per le integrazioni proxy, API Gateway passa l'intera richiesta al back-end e non puoi in alcun modo modificare i comportamenti di passthrough.
Il comportamento di passthrough utilizzato per una richiesta in entrata è definito in base all'opzione scelta per un modello di mappatura specifico, durante la configurazione della richiesta di integrazione e dall'intestazione del Tipo di contenuto che un client ha impostato nella richiesta in entrata. Sono disponibili tre opzioni:
- Opzione Quando nessun modello corrisponde all'intestazione Content-Type della richiesta
Selezionare questa opzione se si desidera che venga eseguito il passthrough del corpo della richiesta di metodo nella richiesta di integrazione al back-end senza trasformazione quando il tipo di contenuto della richiesta di metodo non corrisponde ai tipi di contenuto associati ai modelli di mappatura.
Durante la chiamata all'API Gateway API, scegli questa opzione impostando
WHEN_NO_MATCH
come valore della proprietàpassthroughBehavior
in Integrazione.- Quando non ci sono modelli definiti (consigliato)
-
Selezionare questa opzione se si desidera che venga eseguito il passthrough del corpo della richiesta di metodo nella 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 al momento della selezione di questa opzione, la richiesta di metodo di un tipo di contenuto non mappato sarà rifiutata con la risposta Tipo di supporto non supportato HTTP 415.
Durante la chiamata all'API Gateway API, scegli questa opzione impostando
WHEN_NO_TEMPLATES
come valore della proprietàpassthroughBehavior
in Integrazione. - Mai
-
Selezionare questa opzione se non si desidera che venga eseguito il passthrough del corpo della richiesta di metodo nella 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 al momento della selezione di questa opzione, la richiesta di metodo di un tipo di contenuto non mappato sarà rifiutata con la risposta Tipo di supporto non supportato HTTP 415.
Durante la chiamata all'API Gateway API, scegli questa opzione impostando
NEVER
come valore della proprietàpassthroughBehavior
in Integrazione.
Negli esempi seguenti vengono illustrati i possibili comportamenti di passthrough.
Esempio 1: viene definito un modello di mappatura nella richiesta di integrazione per il tipo di contenuto application/json
.
Intestazione tipo contenuto\Opzione passthrough selezionata | WHEN_NO_MATCH |
WHEN_NO_TEMPLATES |
NEVER |
---|---|---|---|
Nessuna (impostazione predefinita su application/json ) |
Il payload della richiesta viene trasformato utilizzando il modello. | Il payload della richiesta viene trasformato utilizzando il modello. | Il payload della richiesta viene trasformato utilizzando il modello. |
application/json |
Il payload della richiesta viene trasformato utilizzando il modello. | Il payload della richiesta viene trasformato utilizzando il modello. | Il payload della richiesta viene trasformato utilizzando il modello. |
application/xml |
Il payload della richiesta non viene trasformato e viene inviato al back-end inalterato. | La richiesta viene respinta con una risposta HTTP 415 Unsupported Media
Type . |
La richiesta viene respinta con una risposta HTTP 415 Unsupported Media
Type . |
Esempio 2: viene definito un modello di mappatura nella richiesta di integrazione per il tipo di contenuto application/xml
.
Intestazione tipo contenuto\Opzione passthrough selezionata | WHEN_NO_MATCH |
WHEN_NO_TEMPLATES |
NEVER |
---|---|---|---|
Nessuna (impostazione predefinita su application/json ) |
Il payload della richiesta non viene trasformato e viene inviato al back-end inalterato. | La richiesta viene respinta con una risposta HTTP 415 Unsupported Media
Type . |
La richiesta viene respinta con una risposta HTTP 415 Unsupported Media
Type . |
application/json |
Il payload della richiesta non viene trasformato e viene inviato al back-end inalterato. | La richiesta viene respinta con una risposta HTTP 415 Unsupported Media
Type . |
La richiesta viene respinta con una risposta HTTP 415 Unsupported Media
Type . |
application/xml |
Il payload della richiesta viene trasformato utilizzando il modello. | Il payload della richiesta viene trasformato utilizzando il modello. | Il payload della richiesta viene trasformato utilizzando il modello. |