Escolher um tipo de integração de API do API Gateway
Escolha o tipo de integração da API de acordo com os tipos de parâmetro de integração usados e com o modo desejado para transmitir dados que têm origem ou destino no endpoint de integração. Para uma função do Lambda, você pode ter a integração de proxy do Lambda ou a integração personalizada do Lambda. Para um endpoint HTTP, você pode ter a integração de proxy HTTP ou a integração personalizada HTTP. Para uma ação de serviço da AWS, você só pode ter a integração daAWS do tipo não proxy. O API Gateway também oferece suporte à integração simulada, na qual o API Gateway serve como um endpoint de integração para responder a uma solicitação de método.
A integração personalizada do Lambda é um caso especial da integração da AWS em que o endpoint de integração corresponde à ação function-invoking do serviço do Lambda.
Programaticamente, você escolhe um tipo de integração definindo a propriedade type
no recurso Integration
. Para a integração de proxy do Lambda, o valor é AWS_PROXY
. Para a integração personalizada do Lambda e todas as outras integrações da AWS, é AWS
. Para a integração de proxy HTTP e integração HTTP, o valor é HTTP_PROXY
e HTTP
, respectivamente. Para a integração simulada, o valor type
é MOCK
.
A integração proxy do Lambda oferece suporte a uma configuração de integração simplificada com uma única função do Lambda. A configuração é simples e pode evoluir com o backend sem a necessidade de descartar a configuração existente. Por esses motivos, é altamente recomendável para a integração com uma função do Lambda.
Por outro lado, a integração personalizada do Lambda permite a reutilização de modelos de mapeamento configurados para vários endpoints de integração que tenham requisitos semelhantes dos formatos de dados de entrada e saída. A configuração é mais complexa e é recomendável para cenários de aplicativos mais avançados.
Da mesma forma, a integração de proxy HTTP tem uma configuração de integração simplificada e pode evoluir com o backend sem a necessidade de descartar a configuração existente. A integração personalizada HTTP é mais difícil de configurar, mas permite a reutilização de modelos de mapeamento configurados para outros endpoints de integração.
A lista a seguir resume os tipos de integração suportados:
-
AWS
: esse tipo de integração permite que uma API exponha ações de serviço da AWS. Na integraçãoAWS
, você deve configurar a solicitação e a resposta de integração e configurar os mapeamentos de dados necessários da solicitação de método para a solicitação de integração, e da resposta de integração para a resposta de método. -
AWS_PROXY
: esse tipo de integração permite que um método de API seja integrado à invocação da função do Lambda com uma configuração de integração flexível, versátil e simplificada. Essa integração se baseia em interações diretas entre o cliente e a função integrada do Lambda.Com esse tipo de integração, também conhecida como integração de proxy do Lambda, você não define a solicitação de integração nem a resposta de integração. O API Gateway transmite a solicitação recebida do cliente como a entrada para a função do Lambda do backend. A função integrada do Lambda obtém a entrada desse formato e analisa a entrada de todas as origens disponíveis, incluindo cabeçalhos de solicitação, variáveis de caminho URL, parâmetros de string de consulta e o corpo aplicável. A função retorna o resultado seguindo esse formato de saída.
Esse é o tipo de integração preferencial para chamar uma função do Lambda por meio do API Gateway e não se aplica a nenhuma outra ação de serviço da AWS, incluindo ações do Lambda que não sejam a de invocação de função.
-
HTTP
: Este tipo de integração permite que uma API exponha endpoints HTTP no back-end. Com a integraçãoHTTP
, também conhecida como integração personalizada HTTP, você deve configurar a solicitação de integração e a resposta de integração. Devem-se configurar os mapeamentos de dados necessários da solicitação de integração com base na solicitação de método e da resposta de método com base na resposta de integração. -
HTTP_PROXY
: A integração de proxy HTTP permite que um cliente acesse os endpoints HTTP do back-end com uma integração simplificada configurada em um único método de API. Você não define a solicitação de integração nem a resposta de integração. O API Gateway transmite a solicitação recebida do cliente para o endpoint HTTP e transmite a resposta de saída do endpoint HTTP para o cliente. -
MOCK
: Este tipo de integração permite que o API Gateway retorne uma resposta sem enviar a solicitação até o back-end. Isso é útil para testes de API, pois ele pode ser usado para testar a configuração da integração sem incorrer em custos pelo uso do backend e para ativar o desenvolvimento colaborativo de uma API.Em desenvolvimento colaborativo, uma equipe pode isolar o esforço de desenvolvimento configurando simulações de componentes da API pertencentes a outras equipes com o uso das integrações
MOCK
. Também é usado para retornar cabeçalhos relacionados ao CORS a fim de garantir que o método de API permita acesso ao CORS. Na verdade, o console do API Gateway integra o métodoOPTIONS
para oferecer suporte a CORS com uma integração de simulação. Respostas de Gateway são outros exemplos de integrações de simulação.