

# O que é o Amazon API Gateway?
<a name="welcome"></a>

O Amazon API Gateway é um serviço da AWS para criação, publicação, manutenção, monitoramento e proteção de APIs REST e WebSocket em qualquer escala. Os desenvolvedores de API podem criar APIs que acessem a AWS ou outros web services, bem como dados armazenados na [Nuvem AWS](https://aws.amazon.com/what-is-cloud-computing/). Como um desenvolvedor de APIs do API Gateway, é possível criar APIs para uso em suas próprias aplicações cliente. Ou você pode disponibilizar suas APIs para desenvolvedores de aplicativos de terceiros. Para obter mais informações, consulte [Quem usa o API Gateway?](api-gateway-overview-developer-experience.md#apigateway-who-uses-api-gateway).

O API Gateway cria APIs RESTful que:
+ São baseadas em HTTP.
+ Habilitam a comunicação cliente-servidor sem estado.
+ Implementam os métodos HTTP padrão, como GET, POST, PUT, PATCH e DELETE.

Para obter mais informações sobre APIs REST do API Gateway e APIs HTTP, consulte [Escolher entre APIs REST e APIs HTTP](http-api-vs-rest.md), [APIs HTTP do API Gateway](http-api.md), [Usar o API Gateway para criar APIs REST](api-gateway-overview-developer-experience.md#api-gateway-overview-rest) e [Desenvolver APIs REST no API Gateway](rest-api-develop.md).

O API Gateway cria APIs WebSocket que:
+ Seguem o protocolo [WebSocket](https://datatracker.ietf.org/doc/html/rfc6455), que permite a comunicação full-duplex entre cliente e servidor com estado.
+ Roteiam mensagens recebidas com base no conteúdo da mensagem.

Para obter mais informações sobre APIs WebSocket do API Gateway, consulte [Usar o API Gateway para criar APIs do WebSocket](api-gateway-overview-developer-experience.md#api-gateway-overview-websocket) e [Visão geral das APIs de WebSocket no API Gateway](apigateway-websocket-api-overview.md).

**Topics**
+ [Arquitetura do API Gateway](#api-gateway-overview-aws-backbone)
+ [Recursos do API Gateway](#api-gateway-overview-features)
+ [Casos de uso do API Gateway](api-gateway-overview-developer-experience.md)
+ [Acessar o API Gateway](#introduction-accessing-apigateway)
+ [Parte da infraestrutura sem servidor da AWS](#api-gateway-overview-a-serverless-pillar)
+ [Saiba como começar a usar o Amazon API Gateway](#welcome-how-to-get-started)
+ [Conceitos do Amazon API Gateway](api-gateway-basic-concept.md)
+ [Escolher entre APIs REST e APIs HTTP](http-api-vs-rest.md)
+ [Começar a usar o console da API REST](getting-started-rest-new-console.md)

## Arquitetura do API Gateway
<a name="api-gateway-overview-aws-backbone"></a>

O diagrama a seguir mostra a arquitetura do API Gateway.

![\[Diagrama da arquitetura do API Gateway\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/Product-Page-Diagram_Amazon-API-Gateway-How-Works.png)


Este diagrama ilustra como as APIs criadas no Amazon API Gateway proporcionam a você ou a seus clientes desenvolvedores uma experiência de desenvolvedor integrada e consistente para criar aplicações sem servidor da AWS. O API Gateway processa todas as tarefas relacionadas à aceitação e ao processamento de até centenas de milhares de chamadas simultâneas de APIs. As tarefas incluem gerenciamento de tráfego, controle de autorização e acesso, monitoramento e gerenciamento de versão de APIs. 

O API Gateway atua como uma “porta frontal” para aplicações acessarem dados, lógica de negócios ou funcionalidade de seus serviços de backend, como cargas de trabalho executadas no Amazon Elastic Compute Cloud (Amazon EC2), código executado no AWS Lambda, qualquer aplicação Web ou aplicações de comunicação em tempo real.

## Recursos do API Gateway
<a name="api-gateway-overview-features"></a>

O Amazon API Gateway oferece recursos como os seguintes:
+ Suporte para APIs com estado ([WebSocket](apigateway-websocket-api.md)) e sem estado ([HTTP](http-api.md)) e [REST](apigateway-rest-api.md).
+ Mecanismos de [ autenticação](apigateway-control-access-to-api.md) poderosos e flexíveis, como políticas do , funções do autorizador do e grupos de usuários do AWS Identity and Access Management.
+ [Implantações de versão Canary](canary-release.md) para lançar alterações com segurança.
+ Registro em log e monitoramento do [CloudTrail](cloudtrail.md) do uso e alterações de API.
+ Registro de acesso em logs e registro de execução em logs do CloudWatch, incluindo a capacidade de definir alarmes. Para obter mais informações, consulte [Monitorar a execução da API REST com métricas do Amazon CloudWatch](monitoring-cloudwatch.md) e [Monitorar a execução de APIs de WebSocket com métricas do CloudWatch](apigateway-websocket-api-logging.md).
+ Capacidade de usar modelos do CloudFormation para permitir a criação de APIs. Para obter mais informações, consulte [Referência de tipos de recursos do Amazon API Gateway](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ApiGateway.html) e [Referência de tipos de recursos do Amazon API Gateway V2](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ApiGatewayV2.html).
+ Suporte para [nomes de domínio personalizados](how-to-custom-domains.md).
+ Integração ao [AWS WAF](apigateway-control-access-aws-waf.md) para proteger suas APIs contra explorações comuns da web.
+ Integração com latências de desempenho [AWS X-Ray](apigateway-xray.md) para compreensão e triagem.

Para obter uma lista completa das versões de recursos do API Gateway, consulte [Histórico do documento](history.md).

# Casos de uso do API Gateway
<a name="api-gateway-overview-developer-experience"></a>

A seção de casos de uso a seguir apresenta uma visão geral dos diferentes tipos de API do API Gateway e dos diferentes tipos de desenvolvedor que usam o API Gateway. Para ter mais informações sobre a diferença entre as APIs HTTP e as APIs REST, consulte [Escolher entre APIs REST e APIs HTTP](http-api-vs-rest.md).

**Topics**
+ [Usar o API Gateway para criar APIs REST](#api-gateway-overview-rest)
+ [Usar o API Gateway para criar APIs HTTP](#api-gateway-overview-http)
+ [Usar o API Gateway para criar APIs do WebSocket](#api-gateway-overview-websocket)
+ [Quem usa o API Gateway?](#apigateway-who-uses-api-gateway)

## Usar o API Gateway para criar APIs REST
<a name="api-gateway-overview-rest"></a>

Uma API REST do API Gateway é composta por recursos e métodos. Um recurso é uma entidade lógica que um aplicativo pode acessar através de um caminho de recurso. Um método corresponde a uma solicitação de API REST enviada pelo usuário de sua API e a resposta retornada ao usuário. 

Por exemplo, `/incomes` pode ser o caminho de um recurso que representa a renda do usuário do aplicativo. Um recurso pode ter uma ou mais operações que são definidas por verbos HTTP adequados, como GET, POST, PUT, PATCH e DELETE. Uma combinação de um caminho de recurso e uma operação identifica um método da API. Por exemplo, um método `POST /incomes` pode adicionar uma renda obtida pelo autor da chamada, e um método `GET /expenses` pode consultar as despesas relatadas incorridas pelo autor da chamada. 

O aplicativo não precisa saber onde os dados solicitados estão armazenados e de onde são obtidos no backend. Nas APIs REST do API Gateway, o front-end é encapsulado por *solicitações de método* e *respostas do método*. A API faz interface com o backend usando as *solicitações de integração* e *respostas de integração*.

Por exemplo, com o DynamoDB como o backend, o desenvolvedor de APIs configura a solicitação de integração para encaminhar a solicitação do método de entrada para o backend escolhido. A configuração inclui especificações de uma ação adequada do DynamoDB, a função e as políticas do IAM necessárias e os dados de entrada necessários. O backend retorna o resultado para o API Gateway como uma resposta da integração. 

Para rotear a resposta da integração para uma resposta de método adequada (de um determinado código de status HTTP) para o cliente, você pode configurar a resposta da integração para mapear os parâmetros de resposta necessários da integração para o método. Em seguida, você converte o formato dos dados de saída do backend para o formato do front-end, se necessário. O API Gateway permite que você defina um esquema ou um modelo para a [carga ](https://en.wikipedia.org/wiki/Payload_(computing)) a fim de facilitar a configuração do modelo de mapeamento do corpo.

O API Gateway fornece a funcionalidade de gerenciamento da API REST da seguinte forma:
+ Suporte para gerar SDKs e criar a documentação da API usando extensões do API Gateway para OpenAPI
+ Limitação de solicitações HTTP

## Usar o API Gateway para criar APIs HTTP
<a name="api-gateway-overview-http"></a>

As APIs HTTP permitem criar APIs RESTful com menor latência e menor custo que as APIs REST.

Você pode usar APIs HTTP para enviar solicitações para funções do AWS Lambda ou para qualquer endpoint HTTP roteável.

Por exemplo, você pode criar uma API HTTP que se integre a uma função do Lambda no backend. Quando um cliente chama sua API, o API Gateway envia a solicitação para a função do Lambda e retorna a resposta da função para o cliente.

APIs HTTP são compatíveis com as autorizações [OpenID Connect](https://openid.net/developers/how-connect-works/) e [OAuth 2.0](https://oauth.net/2/). Eles são fornecidos com suporte incorporado para compartilhamento de recursos de origem cruzada (CORS) e implantações automáticas.

Para saber mais, consulte [Escolher entre APIs REST e APIs HTTP](http-api-vs-rest.md).

## Usar o API Gateway para criar APIs do WebSocket
<a name="api-gateway-overview-websocket"></a>

Em uma API WebSocket, o cliente e o servidor podem trocar mensagens entre si a qualquer momento. Os servidores de backend podem enviar dados para usuários e dispositivos conectados com facilidade, o que evita a necessidade de implementar mecanismos complexos de sondagem.

Por exemplo, é possível criar uma aplicação sem servidor usando uma API WebSocket do API Gateway e do AWS Lambda para enviar e receber mensagens de e para usuários individuais ou grupos de usuários em uma sala de conversa. Você também pode invocar serviços de backend como o AWS Lambda, o Amazon Kinesis ou um endpoint HTTP com base no conteúdo da mensagem.

É possível usar as APIs WebSocket do API Gateway para criar aplicações de comunicação segura e em tempo real sem a necessidade de provisionar ou gerenciar os servidores para administrar conexões ou intercâmbios de dados em grande escala. Casos de uso direcionados incluem aplicativos em tempo real, como:
+ Aplicativos de bate-papo
+ Painéis em tempo real, como cotações de ações
+ Alertas e notificações em tempo real

O API Gateway fornece a funcionalidade de gerenciamento de API WebSocket, como:
+ Monitoramento e limitações de conexões e mensagens
+ Uso do AWS X-Ray para rastrear mensagens à medida que são transferidas por meio de APIs para serviços de backend
+ Fácil integração com endpoints HTTP/HTTPS

## Quem usa o API Gateway?
<a name="apigateway-who-uses-api-gateway"></a>

Há dois tipos de desenvolvedores que usam o API Gateway: desenvolvedores de APIs e desenvolvedores de aplicações.

Um desenvolvedor de APIs cria e implanta uma API para habilitar a funcionalidade necessária no API Gateway. O desenvolvedor de APIs deve ser um usuário na conta da AWS que é a proprietária da API.

Um desenvolvedor de aplicações cria uma aplicação funcional para chamar serviços da AWS ao invocar uma API WebSocket ou REST criada por um desenvolvedor de APIs no API Gateway.

O desenvolvedor de aplicativos é o cliente do desenvolvedor de APIs. O desenvolvedor de aplicações não precisa ter uma conta da AWS, desde que a API não exija permissões do IAM nem ofereça suporte à autorização de usuários por meio de provedores de identidade federada de terceiros compatíveis com a [Federação de identidades do grupo de usuários do Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/). Esses provedores de identidade incluem a Amazon, o grupo de usuários do Amazon Cognito, o Facebook e o Google.

### Criar e gerenciar uma API do API Gateway
<a name="api-gateway-overview-developer-experience-managing-api"></a>

Um desenvolvedor de APIs trabalha com o componente de serviço do API Gateway para gerenciamento de APIs, denominado `apigateway`, para criar, configurar e implantar uma API.

Como desenvolvedor de APIs, é possível criar e gerenciar uma API usando o console do API Gateway, descrito em [Começar a usar o API Gateway](getting-started.md) ou chamando [Referências de API](api-ref.md). Há várias maneiras de chamar essa API. Elas incluem o uso da AWS Command Line Interface (AWS CLI) ou de um AWS SDK. Além disso, você pode habilitar a criação de API com [modelos AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-reference.html) ou (no caso de APIs REST e APIs HTTP) [Extensões OpenAPI para o API Gateway](api-gateway-swagger-extensions.md). 

Para obter uma lista de regiões em que o API Gateway está disponível, bem como os endpoints de serviço de controle associados, consulte [Endpoints e cotas do Amazon API Gateway](https://docs.aws.amazon.com/general/latest/gr/apigateway.html).

### Chamar uma API do API Gateway
<a name="api-gateway-overview-developer-experience-invoking-api"></a>

Um desenvolvedor de aplicativos trabalha com o componente de serviço do API Gateway para execução da API, denominado `execute-api`, para invocar uma API criada ou implantada no API Gateway. As entidades de programação subjacentes são expostas pela API criada. Há várias maneiras de chamar esse tipo de API. Para saber mais, consulte [Invocar APIs REST no API Gateway](how-to-call-api.md) e [Invocar APIs de WebSocket](apigateway-how-to-call-websocket-api.md).

## Acessar o API Gateway
<a name="introduction-accessing-apigateway"></a>

É possível acessar o Amazon API Gateway das seguintes maneiras:
+ **Console de gerenciamento da AWS**: o Console de gerenciamento da AWS fornece uma interface da Web para criar e gerenciar APIs. Após concluir as etapas em [Configurar para usar o API Gateway](setting-up.md), você pode acessar o console do API Gateway em [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).
+ **AWS SDKs**: se você estiver usando uma linguagem de programação para a qual a AWS fornece um SDK, você poderá usar um SDK para acessar o API Gateway. Os SDKs simplificam a autenticação, integram-se com facilidade ao ambiente de desenvolvimento e fornecem acesso aos comandos do API Gateway. Para mais informações, consulte [Ferramentas para a Amazon Web Services](https://aws.amazon.com/developer/tools/).
+ **APIs do API Gateway V1 e V2**: se você estiver usando uma linguagem de programação para a qual não haja SDK disponível, consulte a [Referência de API do Amazon API Gateway versão 1](https://docs.aws.amazon.com/apigateway/latest/api/API_Operations.html) e [Referência de API do Amazon API Gateway versão 2](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/api-reference.html).
+ **AWS Command Line Interface**: para obter mais informações, consulte [Noções básicas de configuração do AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/) no *Guia do usuário do AWS Command Line Interface*.
+ **AWS Tools for Windows PowerShell**: para obter mais informações, consulte [Noções básicas de configuração do AWS Tools for Windows PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/) no *Guia do usuário do Ferramentas da AWS para PowerShell*.

## Parte da infraestrutura sem servidor da AWS
<a name="api-gateway-overview-a-serverless-pillar"></a>

Juntamente com o [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/), o API Gateway forma a parte voltada para a aplicação da infraestrutura sem servidor da AWS. Para saber mais sobre como começar a usar a tecnologia sem servidor, consulte o [Guia do desenvolvedor da tecnologia sem servidor](https://docs.aws.amazon.com/serverless/latest/devguide/welcome.html).

Para que uma aplicação chame serviços da AWS publicamente disponíveis, você pode usar o Lambda para interagir com os serviços necessários e expor as funções do Lambda por meio de métodos da API no API Gateway. O AWS Lambda executa seu código em uma infraestrutura de computação altamente disponível. Ele realiza a execução e a administração necessárias dos recursos de computação. Para habilitar aplicações sem servidor, o API Gateway oferece [suporte a integrações de proxy simplificadas](api-gateway-set-up-simple-proxy.md) com AWS Lambda e endpoints HTTP. 

## Saiba como começar a usar o Amazon API Gateway
<a name="welcome-how-to-get-started"></a>

Para obter uma introdução ao Amazon API Gateway, consulte o seguinte:
+ [Começar a usar o API Gateway](getting-started.md), que fornece uma demonstração para a criação de uma API HTTP.
+ [land sem servidor](https://serverlessland.com/video?tag=Amazon%20API%20Gateway), que fornece vídeos instrucionais.
+ [Happy Little API Shorts](https://www.youtube.com/playlist?list=PLJo-rJlep0EDFw7t0-IBHffVYKcPMDXHY), que é uma série de breves vídeos instrutivos.

# Conceitos do Amazon API Gateway
<a name="api-gateway-basic-concept"></a>

A seção a seguir descreve conceitos introdutórios para o uso do API Gateway.

**API Gateway**  <a name="apigateway-definition-apigateway"></a>
O API Gateway é um serviço da AWS que oferece suporte à:  
+ Criação, implantação e gerenciamento de uma interface de programação de aplicativos (API) [RESTful](https://en.wikipedia.org/wiki/Representational_state_transfer) para expor endpoints HTTP de backend, funções do AWS Lambda ou outros serviços da AWS.
+ Criação, implantação e gerenciamento de uma API [WebSocket](https://datatracker.ietf.org/doc/html/rfc6455) para expor funções do AWS Lambda ou outros serviços da AWS.
+ Invoque métodos de API expostos por meio de endpoints HTTP e WebSocket de front-end.

**API REST do API Gateway**  <a name="apigateway-definition-apigateway-api"></a>
Uma coleção de métodos e recursos HTTP que são integrados a endpoints HTTP de backend, funções do Lambda ou outros serviços da AWS. É possível implantar essa coleção em um ou mais estágios. Normalmente, os recursos da API são organizados em uma árvore de recursos, de acordo com a lógica do aplicativo. Cada recurso de API pode expor um ou mais métodos de API, que têm verbos HTTP exclusivos compatíveis com o API Gateway. Para obter mais informações, consulte [Escolher entre APIs REST e APIs HTTP](http-api-vs-rest.md).

**API HTTP do API Gateway**  <a name="apigateway-definition-http-api"></a>
Uma coleção de rotas e métodos que são integrados a endpoints HTTP de backend ou funções do Lambda. É possível implantar essa coleção em um ou mais estágios. Cada rota pode expor um ou mais métodos de API, que têm verbos HTTP exclusivos compatíveis com o API Gateway. Para obter mais informações, consulte [Escolher entre APIs REST e APIs HTTP](http-api-vs-rest.md).

**API WebSocket do API Gateway**  <a name="apigateway-definition-apigateway-websocket-api"></a>
Uma coleção de rotas WebSocket e de chaves de rota que são integradas a endpoints HTTP de backend, funções do Lambda ou outros serviços da AWS. É possível implantar essa coleção em um ou mais estágios. Os métodos de API são invocados por meio de conexões de endpoints WebSocket de front-end que você pode associar a um nome de domínio personalizado registrado.

**Implantação de API**  <a name="apigateway-definition-api-deployment"></a>
Um snapshot point-in-time da sua API do API Gateway. Para disponibilizar para os clientes, a implantação deve ser associada a um ou mais estágios de API.

**Desenvolvedor de API**  <a name="apigateway-definition-api-developer"></a>
Sua conta da AWS que é dona de uma implantação do API Gateway (por exemplo, um provedor de serviços que também oferece suporte a acesso por programação.)

**Endpoint de API**  <a name="apigateway-definition-api-endpoints"></a>
Um nome de host para uma API no API Gateway que é implantada em uma região específica. O nome de host tem a seguinte forma `{api-id}.execute-api.{region}.amazonaws.com`. Há suporte para os seguintes tipos de endpoints de API:  
+ [Endpoint de API otimizada para fronteiras](#apigateway-definition-edge-optimized-api-endpoint)
+ [Endpoint privado de API](#apigateway-definition-private-api-endpoint)
+ [Endpoint de API regional](#apigateway-definition-regional-api-endpoint)

**Chave da API**  <a name="apigateway-definition-api-key"></a>
Uma string alfanumérica usada pelo API Gateway para identificar um desenvolvedor de aplicações que usa sua API REST ou WebSocket. O API Gateway pode gerar chaves de API em seu nome ou você pode importá-las para um arquivo CSV. É possível usar chaves de API com [autorizadores do Lambda](apigateway-use-lambda-authorizer.md) ou [planos de uso](api-gateway-api-usage-plans.md) para controlar o acesso às suas APIs.  
Consulte [Endpoints de API](#apigateway-definition-api-endpoints).

**Proprietário de API**  <a name="apigateway-definition-api-owner"></a>
Consulte [Desenvolvedor de APIs](#apigateway-definition-api-developer).

**Estágio de API**  <a name="apigateway-definition-api-stage"></a>
Referência lógica a um estado do ciclo de vida de sua API (por exemplo, 'dev', 'prod', 'beta', 'v2'). Os estágios de API são identificados pelo ID da API e pelo nome do estágio.

**Desenvolvedor de aplicativos**  <a name="apigateway-definition-app-developer"></a>
Um criador de aplicativos que pode ou não ter uma conta da AWS e interage com a API que você, o desenvolvedor da API, implantou. Os desenvolvedores de aplicativos são seus clientes. Um desenvolvedor de aplicativos normalmente é identificado por uma [chave da API](#apigateway-definition-api-key).

**URL de retorno de chamada**  
Quando um novo cliente é conectado por meio de uma conexão WebSocket, você pode chamar uma integração no API Gateway para armazenar o URL de retorno de chamada do cliente. Você poderá então usar este URL de retorno de chamada para enviar mensagens para o cliente a partir do sistema de backend.

**Portal do desenvolvedor**  <a name="apigateway-definition-developer-portal"></a>
Uma aplicação em que os provedores de API podem compartilhar suas APIs e a respectiva documentação com os consumidores da API. As APIs são agrupadas em produtos, que são uma coleção de endpoints da API REST, documentação da API e documentação complementar do produto.  
Consulte [Portais do API Gateway](apigateway-portals.md).

**Endpoint de API otimizada para fronteiras**  <a name="apigateway-definition-edge-optimized-api-endpoint"></a>
O nome do host padrão de uma API do API Gateway implantada na região especificada usando uma distribuição do CloudFront para facilitar o acesso de clientes normalmente entre regiões da AWS. As solicitações de API são roteadas para o ponto de presença (POP) do CloudFront mais próximo, o que geralmente melhora o tempo de conexão para clientes em regiões diferentes.  
Consulte [Endpoints de API](#apigateway-definition-api-endpoints).

**Solicitação de integração**  <a name="apigateway-definition-integration-request"></a>
A interface interna de uma rota de API WebSocket ou de um método de API REST no API Gateway, na qual você mapeia o corpo de uma solicitação de rota ou os parâmetros e o corpo de uma solicitação de método para os formatos exigidos pelo backend.

**Resposta de integração**  <a name="apigateway-definition-integration-response"></a>
A interface interna de um rota de API WebSocket ou de um método de API REST no API Gateway na qual você mapeia os códigos de status, os cabeçalhos e a carga que são recebidos do backend para o formato de resposta que é retornado a um aplicativo cliente.

**modelo de mapeamento**  <a name="apigateway-definition-mapping-template"></a>
Um script em [Velocity Template Language (VTL)](https://velocity.apache.org/engine/devel/vtl-reference.html) que transforma um corpo de solicitação do formato de dados de front-end para o formato de dados de backend, ou que transforma um corpo de resposta do formato de dados de backend para o formato de dados de front-end. Os modelos de mapeamento podem ser especificados na solicitação de integração ou na resposta de integração. Eles podem fazer referência a dados disponibilizados em tempo de execução como contexto e variáveis de estágio.   
O mapeamento pode ser tão simples quanto uma [transformação de identidade](https://en.wikipedia.org/wiki/Identity_transform) que passa os cabeçalhos ou o corpo pela integração no estado em que se encontra do cliente para o backend para uma solicitação. O mesmo aplica-se para uma resposta, na qual a carga é passada do backend ao cliente.

**Solicitação de método**  <a name="apigateway-definition-method-request"></a>
A interface pública de um método de API no API Gateway que define os parâmetros e o corpo que um desenvolvedor de aplicativos deve enviar nas solicitações para acessar o backend por meio da API.

**Resposta do método**  <a name="apigateway-definition-method-response"></a>
A interface pública de uma API REST que define os códigos de status, os cabeçalhos e os modelos de corpo que um desenvolvedor de aplicativos deve esperar em respostas da API. 

**Integração simulada**  <a name="apigateway-definition-mock-integration"></a>
Em uma integração simulada, respostas de API são geradas no API Gateway diretamente, sem a necessidade de um backend de integração. Como desenvolvedor de APIs, você decide como o API Gateway responde a uma solicitação de integração simulada. Para isso, você configura a solicitação de integração e a resposta de integração do método para associar uma resposta a um determinado código de status.

**Modelo**  <a name="apigateway-definition-model"></a>
Um esquema de dados especificando a estrutura de dados de uma solicitação ou carga de resposta. É necessário um modelo para gerar um SDK fortemente tipado de uma API. Ele também é usado para validar as cargas. Um modelo é conveniente para gerar um modelo de mapeamento de amostra para iniciar a criação de um modelo de mapeamento de produção. Embora seja útil, um modelo não é necessário para criar um modelo de mapeamento.

**Portal**  <a name="apigateway-definition-portal"></a>
Consulte [Portal do desenvolvedor](#apigateway-definition-developer-portal).

**Produto do portal**  <a name="apigateway-definition-product"></a>
Serviço ou funcionalidade que você deseja compartilhar. Seu produto de portal consiste em endpoints REST e páginas do produto. Os endpoints REST do produto são os pontos de acesso ao seu produto do portal e consistem no caminho e no método de uma API REST e no estágio em que ela é implantada. As páginas do produto são a documentação que você fornece para explicar como os consumidores da API podem usar os endpoints do seu produto. Você pode compartilhar produtos entre contas da AWS para adicioná-los aos portais.  
Consulte [Criar um produto](apigateway-portals-create-portal-product.md).

**API privado**  <a name="apigateway-definition-private-api"></a>
Consulte [Endpoint privado de API](#apigateway-definition-private-api).

**Endpoint privado de API**  <a name="apigateway-definition-private-api-endpoint"></a>
Um endpoint de API que é exposto por meio de VPC endpoints de interface e permite que um cliente acesse de forma segura os recursos da API privada dentro de uma VPC. As APIs privadas são isoladas da Internet pública e só podem ser acessadas usando VPC endpoints para o API Gateway para o qual foi concedido acesso.

**Integração privada**  <a name="apigateway-definition-private-integration"></a>
Um tipo de integração do API Gateway para um cliente acessar recursos dentro da VPC do cliente por meio de um endpoint de API REST privada sem expor os recursos à Internet pública.

**Integração de proxy**  <a name="apigateway-definition-proxy-integration"></a>
Uma configuração simplificada de integração do API Gateway. É possível configurar uma integração de proxy como um tipo de integração de proxy HTTP ou uma integração de proxy do Lambda.   
Para a integração de proxy HTTP, o API Gateway transmite toda a solicitação e a resposta entre o front-end e um backend HTTP. Para integração de proxy do Lambda, o API Gateway envia toda a solicitação como entrada para uma função do Lambda de backend. Depois, o &API Gateway transforma a saída da função do Lambda em uma resposta HTTP de front-end.   
Nas APIs REST, a integração de proxy é mais comumente usada com um recurso de proxy, representado por uma variável de caminho voraz (por exemplo, `{proxy+}`), combinada com um método genérico `ANY`.

**Criação rápida**  <a name="apigateway-definition-quick-create"></a>
É possível usar a criação rápida para simplificar a criação de uma API HTTP. A criação rápida cria uma API com uma integração ao Lambda ou a HTTP, uma rota genérica padrão e um estágio padrão configurado para implantar alterações automaticamente. Para obter mais informações, consulte [Criar uma API HTTP usando a CLI da AWS](http-api-develop.md#http-api-examples.cli.quick-create).

**Endpoint de API regional**  <a name="apigateway-definition-regional-api-endpoint"></a>
O nome do host de uma API implantada na região especificada e com o objetivo de atender a clientes, como instâncias do EC2, na mesma região da AWS. As solicitações de API são destinadas diretamente para a API do API Gateway específico da região sem passar por nenhuma distribuição do CloudFront. Para solicitações em uma mesma região, um endpoint regional ignora a ida e volta desnecessárias para uma distribuição do CloudFront.   
Além disso, você pode aplicar o [roteamento baseado em latência](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-latency) em endpoints regionais para implantar uma API em várias regiões usando a mesma configuração de endpoint da API regional, definir o mesmo nome de domínio personalizado para cada API implantada e configurar registros DNS baseados em latência no Route 53 a fim de rotear solicitações do cliente para uma região cuja latência é a mais baixa.  
Consulte [Endpoints de API](#apigateway-definition-api-endpoints).

**Rota**  <a name="apigateway-definition-route"></a>
Uma rota WebSocket no API Gateway é usada para direcionar mensagens recebidas para uma integração específica, como uma função do AWS Lambda com base no conteúdo da mensagem. Ao definir sua API WebSocket, você especifica uma chave de roteamento e um backend de integração. A chave de roteamento é um atributo no corpo da mensagem. Quando é feita a correspondência da chave de roteamento em uma mensagem recebida, o backend de integração é invocado.   
Uma rota padrão também podem ser definida para chaves de roteamento que não façam correspondência ou para especificar um modelo de proxy que passa a mensagem no estado em que se encontra para os componentes de backend que executam o roteamento e processam a solicitação.

**Rotear solicitação**  <a name="apigateway-definition-route-request"></a>
A interface pública de um método de API WebSocket no API Gateway que define o corpo que um desenvolvedor de aplicativos deve enviar nas solicitações para acessar o backend por meio da API.

**Rotear resposta**  <a name="apigateway-definition-route-response"></a>
A interface pública de uma API WebSocket que define os códigos de status, os cabeçalhos e os modelos de corpo que um desenvolvedor de aplicativos deve esperar do API Gateway.

**Plano de uso**  <a name="apigateway-definition-usage-plan"></a>
Um [plano de uso](api-gateway-api-usage-plans.md) fornece aos clientes da API selecionada acesso a uma ou mais APIs REST ou WebSocket implantadas. Você pode usar um plano de uso para configurar o controle e os limites de cota individuais que são aplicados em chaves de API individuais de cliente.

**Conexão WebSocket**  
O API Gateway mantém uma conexão persistente entre os clientes e o próprio API Gateway. Não há conexão persistente entre o API Gateway e integrações de backend, como funções do Lambda. Os serviços de backend são invocados conforme necessário, com base no conteúdo das mensagens recebidas dos clientes.

# Escolher entre APIs REST e APIs HTTP
<a name="http-api-vs-rest"></a>

APIs REST e APIs HTTP são produtos da API RESTful. As APIs REST são compatíveis com mais recursos do que as APIs HTTP, enquanto as APIs HTTP são projetadas com recursos mínimos para que possam ser oferecidas por um preço mais baixo. Escolha APIs REST se precisar de recursos como chaves de API, limitação por cliente, validação de solicitações, integração AWS WAF ou endpoints de API privados. Escolha APIs HTTP se você não precisar dos recursos incluídos nas APIs REST.

As seções a seguir resumem os principais recursos que estão disponíveis em APIs HTTP e REST. Quando necessário, links adicionais são fornecidos para navegar entre as seções da API REST e da API HTTP do Guia do desenvolvedor do API Gateway.

## Tipo de endpoint
<a name="http-api-vs-rest.differences.endpoint-type"></a>

O tipo de endpoint refere-se ao endpoint que o API Gateway cria para sua API. Para obter mais informações, consulte [Tipos de endpoint da API para APIs REST no API Gateway](api-gateway-api-endpoint-types.md). 


| Tipos de endpoint | API REST | API HTTP | 
| --- | --- | --- | 
|  [Otimizado para borda](api-gateway-api-endpoint-types.md#api-gateway-api-endpoint-types-edge-optimized)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) Sim  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/negative_icon.svg) No (Não)  | 
|  [Regional](api-gateway-api-endpoint-types.md#api-gateway-api-endpoint-types-regional)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) Yes (Sim)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) Yes (Sim)  | 
|  [Privado](api-gateway-api-endpoint-types.md#api-gateway-api-endpoint-types-private)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) Sim  | ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/negative_icon.svg) No (Não)  | 

## Segurança
<a name="http-api-vs-rest.differences.security"></a>

O API Gateway fornece várias maneiras de proteger sua API de determinadas ameaças, como usuários mal-intencionados ou picos de tráfego. Para saber mais, consulte [Proteger as APIs REST no API Gateway](rest-api-protect.md) e [Proteger as APIs HTTP no API Gateway](http-api-protect.md).


| Recursos de segurança | API REST | API HTTP | 
| --- | --- | --- | 
|  [Autenticação TLS mútua](rest-api-mutual-tls.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) [Yes (Sim](rest-api-mutual-tls.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) [Yes (Sim](http-api-mutual-tls.md)  | 
|  [Certificados para autenticação de back-end](getting-started-client-side-ssl-authentication.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) Sim  | ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/negative_icon.svg) Não  | 
|  [AWS WAF](apigateway-control-access-aws-waf.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) Sim  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/negative_icon.svg) No (Não)  | 

## Autorização
<a name="http-api-vs-rest.differences.authorization"></a>

O API Gateway oferece suporte a vários mecanismos de controle e gerenciamento de acesso à sua API. Para obter mais informações, consulte [Controlar e gerenciar o acesso a APIs REST no API Gateway](apigateway-control-access-to-api.md) e [Controlar e gerenciar o acesso a APIs HTTP no API Gateway](http-api-access-control.md).


| Opções de autorização | API REST | API HTTP | 
| --- | --- | --- | 
|  [IAM](permissions.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) [Yes (Sim](permissions.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) [Yes (Sim](http-api-access-control-iam.md)  | 
|  [Políticas de recursos](apigateway-resource-policies.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) Sim  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/negative_icon.svg) No (Não)   | 
|  [Amazon Cognito](apigateway-integrate-with-cognito.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) Sim  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) Sim 1  | 
|  [Autorização personalizada com uma função do AWS Lambda](apigateway-use-lambda-authorizer.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) [Yes (Sim](apigateway-use-lambda-authorizer.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) [Yes (Sim](http-api-lambda-authorizer.md)  | 
|  [JSON Web Token (JWT)](http-api-jwt-authorizer.md) 2  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/negative_icon.svg) Não  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) Sim  | 

1 É possível usar o Amazon Cognito com um [Autorizador do JWT](http-api-jwt-authorizer.md).

2 É possível usar um [autorizador do Lambda](apigateway-use-lambda-authorizer.md) para validar JWTs para APIs REST.

## Gerenciamento de APIs
<a name="http-api-vs-rest.differences.management"></a>

Escolha APIs REST se precisar de recursos de gerenciamento de API, como chaves de API e limitação de taxa por cliente. Para ter mais informações, consulte [Distribuir as APIs REST para clientes no API Gateway](rest-api-distribute.md), [Nome de domínio personalizado para APIs REST públicas no API Gateway](how-to-custom-domains.md) e [Nomes de domínio personalizados para APIs HTTP no API Gateway](http-api-custom-domain-names.md).


| Recursos | API REST | API HTTP | 
| --- | --- | --- | 
|  [Domínios personalizados](how-to-custom-domains.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) [Yes (Sim](how-to-custom-domains.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) [Yes (Sim](http-api-custom-domain-names.md)  | 
|  [Chaves de API](api-gateway-api-usage-plans.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) Sim  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/negative_icon.svg) No (Não)  | 
|  [Limitação de taxa por cliente](api-gateway-request-throttling.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) Sim  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/negative_icon.svg) No (Não)  | 
|  [Limitação de uso por cliente](api-gateway-api-usage-plans.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) Sim  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/negative_icon.svg) No (Não)  | 
|  [Portal do desenvolvedor](apigateway-portals.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) Sim  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/negative_icon.svg) No (Não)  | 

## Desenvolvimento
<a name="http-api-vs-rest.differences.development"></a>

Ao desenvolver a API do API Gateway, você decidirá uma série de características da API. Essas características dependem do caso de uso da sua API. Para obter mais informações, consulte [Desenvolver APIs REST no API Gateway](rest-api-develop.md) e [Desenvolver APIs HTTP no API Gateway](http-api-develop.md).


| Recursos | API REST | API HTTP | 
| --- | --- | --- | 
|  [Configuração de CORS](how-to-cors.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) [Yes (Sim](how-to-cors.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) [Yes (Sim](http-api-cors.md)  | 
|  [Testar invocações](how-to-test-method.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) Sim  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/negative_icon.svg) No (Não)  | 
|  [Armazenamento em cache](api-gateway-caching.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) Sim  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/negative_icon.svg) No (Não)  | 
|  [Implantações controladas pelo usuário](how-to-deploy-api.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) [Yes (Sim](how-to-deploy-api.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) [Yes (Sim](http-api-stages.md)  | 
|  [Implantações automáticas](http-api-stages.md)  | ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/negative_icon.svg) Não  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) Sim  | 
|  [Custom gateway responses (Respostas personalizadas do gateway](api-gateway-gatewayResponse-definition.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) Sim  | ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/negative_icon.svg) No (Não)  | 
|  [Implantações da versão canário](canary-release.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) Sim  | ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/negative_icon.svg) No (Não)  | 
|  [Validação da solicitação](api-gateway-method-request-validation.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) Sim  | ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/negative_icon.svg) No (Não)  | 
|  [Solicitar transformação de parâmetros](rest-api-data-transformations.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) [Yes (Sim](rest-api-data-transformations.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) [Yes (Sim](http-api-parameter-mapping.md)  | 
|  [Solicitar transformação do corpo](rest-api-data-transformations.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) Sim  | ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/negative_icon.svg) No (Não)  | 

## Monitoramento
<a name="http-api-vs-rest.differences.monitoring"></a>

O API Gateway é compatível com várias opções para registrar solicitações de API e monitorar suas APIs. Para obter mais informações, consulte [Monitorar APIs REST no API Gateway](rest-api-monitor.md) e [Monitorar APIs HTTP no API Gateway](http-api-monitor.md).


| Recurso | API REST | API HTTP | 
| --- | --- | --- | 
|  [Métricas do Amazon CloudWatch](monitoring-cloudwatch.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) [Yes (Sim](monitoring-cloudwatch.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) [Yes (Sim](http-api-metrics.md)  | 
|  [Logs de acesso ao CloudWatch Logs](set-up-logging.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) [Yes (Sim](set-up-logging.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) [Yes (Sim](http-api-logging.md)  | 
|  [Logs de acesso ao Amazon Data Firehose](apigateway-logging-to-kinesis.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) Sim  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/negative_icon.svg) No (Não)  | 
|  [Logs de execução](set-up-logging.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) Sim  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/negative_icon.svg) No (Não)  | 
|  [AWS X-Ray Rastreamento do](apigateway-xray.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) Sim  | ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/negative_icon.svg) No (Não)  | 

## Integrações
<a name="http-api-vs-rest.differences.integrations"></a>

As integrações conectam sua API do API Gateway aos recursos de back-end. Para obter mais informações, consulte [Integrações para APIs REST no API Gateway](how-to-integration-settings.md) e [Criar integrações para APIs HTTP no API Gateway](http-api-develop-integrations.md).


| Recurso | API REST | API HTTP | 
| --- | --- | --- | 
|  [Endpoints HTTP públicos](setup-http-integrations.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) [Yes (Sim](setup-http-integrations.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) [Yes (Sim](http-api-develop-integrations-http.md)  | 
|  [AWS Serviços da](api-gateway-api-integration-types.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) [Yes (Sim](api-gateway-api-integration-types.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) [Yes (Sim](http-api-develop-integrations-aws-services.md)  | 
|  [AWS Lambda functions](set-up-lambda-integrations.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) [Yes (Sim](set-up-lambda-integrations.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) [Yes (Sim](http-api-develop-integrations-lambda.md)  | 
|  [Integrações privadas com Network Load Balancers](set-up-private-integration.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) [Yes (Sim](set-up-private-integration.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) [Yes (Sim](http-api-develop-integrations-private.md)  | 
|  [Integrações privadas com Application Load Balancers](http-api-develop-integrations-private.md)  | ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) [Yes (Sim](set-up-private-integration.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) Yes (Sim)  | 
|  [Integrações privadas com AWS Cloud Map](http-api-develop-integrations-private.md)  | ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/negative_icon.svg) Não   |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) Sim  | 
|  [Integrações simuladas](how-to-mock-integration.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) Sim  | ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/negative_icon.svg) No (Não)  | 
|  [Streaming de respostas](response-transfer-mode.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/success_icon.svg) Sim  | ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/negative_icon.svg) No (Não)  | 

# Começar a usar o console da API REST
<a name="getting-started-rest-new-console"></a>

Neste exercício de conceitos básicos, você cria uma API REST sem servidor usando o console da API REST do API Gateway. As APIs sem servidor permitem que você se concentre nas aplicações, em vez de gastar tempo provisionando e gerenciando servidores. Este exercício leva menos de 20 minutos para ser concluído e é possível dentro do [nível gratuito da AWS](https://aws.amazon.com/free/).

Primeiro, crie uma função do Lambda usando o console do Lambda. Depois, crie uma API REST usando o console da API REST do API Gateway. Depois, crie um método de API e o integre a uma função do Lambda usando uma integração de proxy do Lambda. Por fim, implante e invoque a API.

Quando você invoca a API REST, o API Gateway encaminha a solicitação à função do Lambda. O Lambda executa a função e retorna uma resposta ao API Gateway. Então, o API Gateway retorna uma resposta para você.

![\[Visão geral da API REST criada neste tutorial.\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/getting-started-overview-rest.png)


Para concluir este exercício, você precisa de uma Conta da AWS e de um usuário do AWS Identity and Access Management (IAM) com acesso ao console. Para obter mais informações, consulte [Configurar para usar o API Gateway](setting-up.md).

**Topics**
+ [Etapa 1: Criar uma função do Lambda](#getting-started-rest-new-console-create-function)
+ [Etapa 2: criar uma API REST](#getting-started-rest-new-console-create-api)
+ [Etapa 3: criar uma integração de proxy do Lambda](#getting-started-rest-new-console-create-integration)
+ [Etapa 4: implantar a API](#getting-started-rest-new-console-deploy)
+ [Etapa 5: invocar a API](#getting-started-rest-new-console-invoke-api)
+ [Etapa 6 (opcional): limpar](#getting-started-cleanup-rest)

## Etapa 1: Criar uma função do Lambda
<a name="getting-started-rest-new-console-create-function"></a>

Você usa uma função do Lambda para o backend da sua API. O Lambda executa o código somente quando necessário e dimensiona automaticamente, desde algumas solicitações por dia a milhares por segundo.

Para este exercício, você usa a função Node.js padrão no console do Lambda.

**Criar uma função do Lambda**

1. Abra o console do Lambda em [https://console.aws.amazon.com/lambda](https://console.aws.amazon.com/lambda)

1. Escolha **Create function** (Criar função).

1. Em **Basic information (Informações básicas)**, em **Function name (Nome da função)**, insira **my-function**.

1. Em todas as outras opções, use a configuração padrão.

1. Escolha a opção **Criar função**.

O código de função padrão do Lambda deve ser semelhante ao seguinte:

```
export const handler = async (event) => {
    const response = {
        statusCode: 200,
        body: JSON.stringify('The API Gateway REST API console is great!'),
    };
    return response;
};
```

É possível modificar a função do Lambda para este exercício, desde que a resposta da função esteja alinhada com o [formato que o API Gateway requer](set-up-lambda-proxy-integrations.md#api-gateway-simple-proxy-for-lambda-output-format).

Substitua o corpo da resposta padrão (`Hello from Lambda!`) por `The API Gateway REST API console is great!`. Quando você invoca a função de exemplo, ela retorna uma resposta `200` aos clientes, bem como a resposta atualizada.

## Etapa 2: criar uma API REST
<a name="getting-started-rest-new-console-create-api"></a>

Em seguida, crie uma API REST com um recurso raiz (`/`).

**Como criar uma API REST**

1. Faça login no console do API Gateway em [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Execute um destes procedimentos:
   + Para criar sua primeira API, em **API REST**, escolha **Criar**.
   + Se você criou uma API antes, escolha **Criar API** e, depois, escolha **Criar** para **API REST**.

1.  Em **API name (Nome da API)**, insira **my-rest-api**.

1. (Opcional) Em **Description (Descrição)**, insira uma descrição.

1. Mantenha **Tipo de endpoint de API** definido como **Regional**.

1. Em **Tipo de endereço IP**, selecione **IPv4**.

1. Selecione **Criar API**.

## Etapa 3: criar uma integração de proxy do Lambda
<a name="getting-started-rest-new-console-create-integration"></a>

Em seguida, você cria um método de API para a API REST no recurso raiz (`/`) e integra o método à função do Lambda usando uma integração de proxy. Em uma integração de proxy do Lambda, o API Gateway passa a solicitação de entrada do cliente diretamente para a função do Lambda.

**Como criar uma integração de proxy do Lambda**

1. Selecione o recurso `/` e escolha **Criar método**.

1. Em **Tipo de método**, selecione `ANY`.

1. Em **Tipo de integração**, selecione **Lambda**.

1. Ative **Integração de proxy do Lambda**.

1. Em **Função do Lambda**, insira **my-function** e selecione sua função do Lambda.

1. Escolha **Criar método**.

## Etapa 4: implantar a API
<a name="getting-started-rest-new-console-deploy"></a>

Em seguida, você cria uma implantação de API e a associa a um estágio.

**Para implantar sua API**

1. Escolha **Implantar API**.

1. Em **Estágio**, selecione **Novo estágio**.

1. Em **Stage name (Nome do estágio)**, insira **Prod**.

1. (Opcional) Em **Description (Descrição)**, insira uma descrição.

1. Escolha **Implantar**.

Agora, os clientes podem chamar sua API. Para testar a API antes de implantá-la, você pode, opcionalmente, escolher o método **QUALQUER**, navegar até a guia **Testar** e escolher **Testar**.

## Etapa 5: invocar a API
<a name="getting-started-rest-new-console-invoke-api"></a>

**Como invocar a API**

1. No painel de navegação principal, escolha **Estágio**.

1. Em **Detalhes do estágio**, escolha o ícone de cópia para copiar o URL de invocação da API.  
![\[Após a criação da API REST, o console mostra o URL de chamada da API.\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/getting-started-rest-invoke-url.png)

1. Insira o URL de invocação em um navegador da web. 

   O URL deve ser semelhante a `https://abcd123.execute-api.us-east-2.amazonaws.com/Prod`. 

   Seu navegador envia uma solicitação `GET` à API.

1. Verifique a resposta da sua API. Você deve ver o texto `"The API Gateway REST API console is great!"` no seu navegador.

## Etapa 6 (opcional): limpar
<a name="getting-started-cleanup-rest"></a>

Para evitar acumular custos desnecessários para sua Conta da AWS, exclua os recursos que você criou como parte deste exercício. As etapas a seguir excluem a API REST, a função do Lambda e recursos associados.

**Como excluir a API REST**

1. No painel **Recursos**, escolha **Ações de API**, **Excluir API**.

1. Na caixa de diálogo **Excluir API**, insira **confirmar** e **Excluir**.

**Como excluir uma função do Lambda**

1. Abra o console do Lambda em [https://console.aws.amazon.com/lambda](https://console.aws.amazon.com/lambda)

1. Na página **Funções**, selecione a função. Selecione **Ações**, **Excluir**.

1. Na caixa de diálogo **Excluir 1 funções**, insira **delete** e selecione **Excluir**.

**Como excluir um grupo de logs da função do Lambda**

1. Abra a [página Log groups](https://console.aws.amazon.com/cloudwatch/home#logs:) (Grupos de log) do console do Amazon CloudWatch.

1. Na página **Grupos de logs**, selecione o grupo de logs da função (`/aws/lambda/my-function`). Em **Ações**, escolha **Excluir grupo(s) de logs**.

1. Na caixa de diálogo **Delete log group(s)** (Excluir grupo(s) de logs), escolha **Delete** (Excluir).

**Para excluir o perfil de execução de uma função do Lambda**

1. Abra a página [Funções](https://console.aws.amazon.com/iam/home?#/roles) no console do IAM.

1. (Opcional) Na página **Perfis**, na caixa de pesquisa, insira **my-function**.

1. Selecione o perfil da função (por exemplo, `my-function-31exxmpl`) e escolha **Excluir**.

1. Na caixa de diálogo **Excluir `my-function-31exxmpl`?**, insira o nome do perfil e selecione **Excluir**.

**dica**  
Você pode automatizar a criação e a limpeza dos recursos da AWS usando o AWS CloudFormation ou o AWS Serverless Application Model (AWS SAM). Para ver alguns exemplos de modelos do CloudFormation, consulte os [exemplos de modelo para o API Gateway](https://github.com/awsdocs/amazon-api-gateway-developer-guide/tree/main/cloudformation-templates) no repositório **awsdocs** do GitHub.