Elegir un tipo de integración de API de API Gateway
El tipo de integración de la API se selecciona con arreglo a los tipos de punto de enlace de integración con los que trabaje y al modo en que desea transferir los datos hacia y desde el punto de enlace de integración. Para una función de Lambda, puede tener la integración de proxy de Lambda o la integración personalizada de Lambda. Para un punto de enlace HTTP, puede elegir entre la integración de proxy HTTP o una integración HTTP personalizada. Para una acción del servicio de AWS, dispone de la integración de AWS solo para el tipo que no sea proxy. API Gateway también admite la integración simulada, donde API Gateway actúa como punto de enlace de integración para responder a una solicitud de método.
La integración personalizada de Lambda es un caso especial de la integración de AWS, donde el punto de enlace de integración se corresponde con la acción que invoca las funciones del servicio de Lambda.
Mediante programación, puede seleccionar un tipo de integración configurando la propiedad type
en el recurso Integration
. Para la integración de proxy de Lambda, el valor es AWS_PROXY
. Para la integración de Lambda personalizada y el resto de integraciones de AWS, el valor es AWS
. Para la integración de proxy HTTP y la integración HTTP, el valor es HTTP_PROXY
y HTTP
, respectivamente. Para la integración simulada, el valor type
es MOCK
.
La integración de proxy de Lambda admite una configuración de integración simplificada con una única función de Lambda. La configuración es sencilla y puede evolucionar con el backend sin tener que eliminar la configuración existente. Por estas razones, es muy recomendable para la integración con una función de Lambda.
En cambio, la integración de Lambda personalizada permite la reutilización de las plantillas de mapeo configuradas para varios puntos de enlace de integración con requisitos similares sobre el formato de los datos de entrada y salida. Esta configuración es más compleja y se recomienda para situaciones de aplicación más avanzadas.
Del mismo modo, la integración de proxy HTTP tiene una configuración de integración simplificada y puede evolucionar con el backend sin tener que eliminar la configuración existente. La integración HTTP personalizada resulta más compleja de configurar, pero permite la reutilización de las plantillas de mapeo configuradas para otros puntos de enlace de integración.
En la siguiente lista se resumen los tipos de integración admitidos:
-
AWS
: este tipo de integración permite a una API exponer acciones del servicio de AWS. En la integración deAWS
, debe configurar tanto la solicitud de integración como la respuesta de integración y también configurar el mapeo necesario de los datos entre la solicitud de método y la solicitud de integración, y entre la respuesta de integración y la respuesta de método. -
AWS_PROXY
: este tipo de integración permite que se integre un método de la API con la acción de invocación de la función de Lambda a través de una configuración de integración flexible, versátil y simplificada. Esta integración se basa en las interacciones directas entre el cliente y la función de Lambda integrada.Con este tipo de integración, que también se conoce como integración de proxy de Lambda, no tiene que establecer la solicitud de integración ni la respuesta de integración. API Gateway transmite la solicitud entrante del cliente, como entrada, a la función de Lambda del backend. La función de Lambda integrada toma la entrada de este formato y analiza la entrada de todos los orígenes disponibles, incluidos los encabezados de solicitudes, las variables de ruta de la URL, los parámetros de cadena de consulta y el cuerpo aplicable. Esta función devuelve un resultado con el siguiente formato de salida.
Este es el tipo de integración recomendable para llamar a la función de Lambda a través de API Gateway y no es aplicable a ninguna otra acción del servicio de AWS, incluidas las acciones Lambda que no sean la acción que invoca las funciones.
-
HTTP
: este tipo de integración permite que una API exponga puntos de enlace de HTTP en el backend. Con la integraciónHTTP
, que también se conoce como integración HTTP personalizada, debe configurar tanto la solicitud de integración como la respuesta de integración. Debe establecer la asignación necesaria de los datos entre la solicitud de método y la solicitud de integración, y entre la respuesta de integración y la respuesta de método. -
HTTP_PROXY
: La integración de proxy HTTP permite que un cliente tenga acceso a puntos de enlace HTTP de backend con una configuración de la integración simplificada en un único método de API. No tiene que establecer la solicitud de integración ni la respuesta de integración. API Gateway pasa la solicitud entrante del cliente al punto de enlace HTTP y pasa la respuesta saliente del punto de enlace HTTP al cliente. -
MOCK
: este tipo de integración permite que API Gateway devuelva una respuesta sin enviar la solicitud al backend. Esto es útil en las pruebas de la API, ya que se puede utilizar para probar la configuración de la integración sin incurrir en cargos por utilizar el backend y para permitir el desarrollo colaborativo de una API.En el desarrollo colaborativo, un equipo puede aislar sus esfuerzos de desarrollo configurando simulaciones de los componentes de la API que son propiedad de otros equipos mediante el uso de integraciones
MOCK
. También se utiliza para devolver encabezados relacionados con CORS y garantizar que el método de API permita el acceso a CORS. De hecho, la consola de API Gateway integra el métodoOPTIONS
para admitir CORS con una integración simulada. Las respuestas de gateway son otros ejemplos de integraciones simuladas.