Comportamientos del acceso directo a la integración
En integraciones que no sean de proxy, cuando una solicitud de método contiene una carga y el encabezado Content-Type
no coincide con ninguna de las plantillas de mapeo especificadas o no se ha definido ninguna plantilla de mapeo, puede optar por transmitir la carga de solicitud suministrada por el cliente a través de una solicitud de integración al backend sin transformación. Este proceso se denomina "acceso directo a la integración".
En el caso de integraciones de proxy, API Gateway pasa la solicitud completa a través del backend y no tiene la opción de modificar los comportamientos de "acceso directo" (o passthrough).
El comportamiento real de acceso directo de una solicitud entrante se determina en función de la opción elegida para una plantilla de asignación especificada, durante la configuración de la solicitud de integración, y del encabezado Content Type que un cliente establece en la solicitud entrante. Hay tres opciones:
- Cuando ninguna plantilla coincide con el encabezado Tipo de contenido solicitado
Elija esta opción si desea que el cuerpo de la solicitud de método se transmita a través de la solicitud de integración al backend sin transformación cuando el tipo de contenido de la solicitud de método no coincida con ningún tipo de contenido asociado a las plantillas de mapeo.
Al llamar a la API de API Gateway, se elige esta opción estableciendo
WHEN_NO_MATCH
como el valor de la propiedadpassthroughBehavior
en Integración.- Cuando no hay plantillas definidas (recomendado)
-
Elija esta opción si desea que el cuerpo de la solicitud de método se transmita a través de la solicitud de integración al backend sin transformación cuando no se haya definido ninguna plantilla de mapeo en la solicitud de integración. Si se define una plantilla cuando esta opción está seleccionada, la solicitud de método de un tipo de contenido sin asignar se rechazará con una respuesta HTTP 415 Unsupported Media Type.
Al llamar a la API de API Gateway, se elige esta opción estableciendo
WHEN_NO_TEMPLATES
como el valor de la propiedadpassthroughBehavior
en Integración. - Nunca
-
Elija esta opción si no desea que el cuerpo de la solicitud de método se transmita a través de la solicitud de integración al backend sin transformación cuando no se haya definido ninguna plantilla de mapeo en la solicitud de integración. Si se define una plantilla cuando esta opción está seleccionada, la solicitud de método de un tipo de contenido sin asignar se rechazará con una respuesta HTTP 415 Unsupported Media Type.
Al llamar a la API de API Gateway, se elige esta opción estableciendo
NEVER
como el valor de la propiedadpassthroughBehavior
en Integración.
Los siguientes ejemplos ilustran los posibles comportamientos del acceso directo.
Ejemplo 1: Se define una plantilla de asignación en la solicitud de integración para el tipo de contenido application/json
.
Encabezado Content-Type\Opción de acceso directo seleccionada | WHEN_NO_MATCH |
WHEN_NO_TEMPLATES |
NEVER |
---|---|---|---|
Ninguno (se usa el valor predeterminado application/json ) |
La carga de solicitud se transforma mediante la plantilla. | La carga de solicitud se transforma mediante la plantilla. | La carga de solicitud se transforma mediante la plantilla. |
application/json |
La carga de solicitud se transforma mediante la plantilla. | La carga de solicitud se transforma mediante la plantilla. | La carga de solicitud se transforma mediante la plantilla. |
application/xml |
La carga de solicitud no se transforma y se envía al backend tal como está. | La solicitud se rechaza con una respuesta HTTP 415 Unsupported Media
Type . |
La solicitud se rechaza con una respuesta HTTP 415 Unsupported Media
Type . |
Ejemplo 2: Se define una plantilla de asignación en la solicitud de integración para el tipo de contenido application/xml
.
Encabezado Content-Type\Opción de acceso directo seleccionada | WHEN_NO_MATCH |
WHEN_NO_TEMPLATES |
NEVER |
---|---|---|---|
Ninguno (se usa el valor predeterminado application/json ) |
La carga de solicitud no se transforma y se envía al backend tal como está. | La solicitud se rechaza con una respuesta HTTP 415 Unsupported Media
Type . |
La solicitud se rechaza con una respuesta HTTP 415 Unsupported Media
Type . |
application/json |
La carga de solicitud no se transforma y se envía al backend tal como está. | La solicitud se rechaza con una respuesta HTTP 415 Unsupported Media
Type . |
La solicitud se rechaza con una respuesta HTTP 415 Unsupported Media
Type . |
application/xml |
La carga de solicitud se transforma mediante la plantilla. | La carga de solicitud se transforma mediante la plantilla. | La carga de solicitud se transforma mediante la plantilla. |