Comportamiento de solicitud de método para cargas útiles sin plantillas de asignación para las API de REST en API Gateway - Amazon API Gateway

Comportamiento de solicitud de método para cargas útiles sin plantillas de asignación para las API de REST en API Gateway

Si la solicitud de método tiene una carga útil y no tiene una plantilla de asignación definida para el encabezado Content-Type, puede elegir pasar la carga útil de la solicitud suministrada por el cliente a través de la solicitud de integración al backend sin transformación. Este proceso se denomina "acceso directo a la integración".

El comportamiento de acceso directo real de una solicitud entrante viene determinado por esta configuración. 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 se selecciona esta opción, la solicitud de método con una carga útil y un tipo de contenido que no coincida con ninguna plantilla de asignación definida se rechazará con una respuesta HTTP 415 Tipo de medio no admitido.

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 muestran 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.

content-type Opción de acceso directo Comportamiento

Ninguno

El valor predeterminado de API Gateway es application/json

WHEN_NO_MATCH La carga de solicitud se transforma mediante la plantilla.

Ninguno

El valor predeterminado de API Gateway es application/json

WHEN_NO_TEMPLATES La carga de solicitud se transforma mediante la plantilla.

Ninguno

El valor predeterminado de API Gateway es application/json

NEVER La carga de solicitud se transforma mediante la plantilla.
application/json WHEN_NO_MATCH La carga de solicitud se transforma mediante la plantilla.
application/json WHEN_NO_TEMPLATES La carga de solicitud se transforma mediante la plantilla.
application/json NEVER La carga de solicitud se transforma mediante la plantilla.
application/xml WHEN_NO_MATCH La carga de solicitud no se transforma y se envía al backend tal como está.
application/xml WHEN_NO_TEMPLATES La solicitud se rechaza con una respuesta HTTP 415 Unsupported Media Type.
application/xml NEVER 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.

Content-type Opción de acceso directo Comportamiento

Ninguno

El valor predeterminado de API Gateway es application/json

WHEN_NO_MATCH La carga de solicitud no se transforma y se envía al backend tal como está.

Ninguno

El valor predeterminado de API Gateway es application/json

WHEN_NO_TEMPLATES La solicitud se rechaza con una respuesta HTTP 415 Unsupported Media Type.

Ninguno

El valor predeterminado de API Gateway es application/json

NEVER La solicitud se rechaza con una respuesta HTTP 415 Unsupported Media Type.
application/json WHEN_NO_MATCH La carga de solicitud no se transforma y se envía al backend tal como está.
application/json WHEN_NO_TEMPLATES La solicitud se rechaza con una respuesta HTTP 415 Unsupported Media Type.
application/json NEVER La solicitud se rechaza con una respuesta HTTP 415 Unsupported Media Type.
application/xml WHEN_NO_MATCH La carga de solicitud se transforma mediante la plantilla.
application/xml WHEN_NO_TEMPLATES La carga de solicitud se transforma mediante la plantilla.
application/xml NEVER La carga de solicitud se transforma mediante la plantilla.

Ejemplo 3: no se han definido plantillas de asignación en la solicitud de integración.

Content-type Opción de acceso directo Comportamiento

Ninguno

El valor predeterminado de API Gateway es application/json

WHEN_NO_MATCH La carga de solicitud no se transforma y se envía al backend tal como está.

Ninguno

El valor predeterminado de API Gateway es application/json

WHEN_NO_TEMPLATES La carga de solicitud no se transforma y se envía al backend tal como está.

Ninguno

El valor predeterminado de API Gateway es application/json

NEVER La solicitud se rechaza con una respuesta HTTP 415 Unsupported Media Type.
application/json WHEN_NO_MATCH La carga de solicitud no se transforma y se envía al backend tal como está.
application/json WHEN_NO_TEMPLATES La carga de solicitud no se transforma y se envía al backend tal como está.
application/json NEVER La solicitud se rechaza con una respuesta HTTP 415 Unsupported Media Type.
application/xml WHEN_NO_MATCH La carga de solicitud no se transforma y se envía al backend tal como está.
application/xml WHEN_NO_TEMPLATES La carga de solicitud no se transforma y se envía al backend tal como está.
application/xml NEVER La solicitud se rechaza con una respuesta HTTP 415 Unsupported Media Type.