Comportamientos del acceso directo a la integración - Amazon API Gateway

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 propiedad passthroughBehavior 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 propiedad passthroughBehavior 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 propiedad passthroughBehavior 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.