

# Implantar APIs REST no API Gateway
<a name="how-to-deploy-api"></a>

 Depois de criar sua API, você deve implantá-la para permitir que seja chamada por seus usuários. 

Para implantar uma API, você cria uma implantação da API e a associa a um estágio. Um estágio é uma 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. Eles são incluídos no URL que você usa para chamar a API. Cada estágio é uma referência nomeada a uma implantação da API e é disponibilizado para chamadas feitas por aplicativos cliente. 

**Importante**  
Toda vez que atualizar uma API, você deve reimplantar a API em um estágio existente ou em um novo estágio. A atualização de uma API inclui a modificação de rotas, métodos, integrações, autorizadores, políticas de recursos e qualquer outro elemento além das configurações do estágio. 

À medida que a sua API evolui, você pode continuar a implantá-la em diferentes estágios como versões distintas da API. Você também pode implantar suas atualizações de API como uma [implantação de lançamento canary](canary-release.md). Isso permite que seus clientes de API acessem, no mesmo estágio, a versão de produção por meio da versão de produção e a versão atualizada por meio da versão canary. 

Para chamar uma API implantada, o cliente envia uma solicitação com base na URL da API. A URL é determinada pelo protocolo de uma API (HTTP(S) ou (WSS)), nome do host, nome do estágio e (para APIs REST) caminho de recurso. O nome do host e o nome do estágio definem o URL base da API. 

Com o nome de domínio padrão da API, o URL base de uma API REST (por exemplo) em determinado estágio (`{stageName}`) tem o seguinte formato:

```
https://{restapi-id}.execute-api.{region}.amazonaws.com/{stageName}
```

 Para facilitar o uso do URL base padrão da API, você pode criar um nome de domínio personalizado (por exemplo, `api.example.com`) para substituir o nome de domínio padrão da API. Para oferecer suporte a várias APIs sob o nome de domínio personalizado, você deve mapear um estágio de API para um caminho de base. 

Com um nome de domínio personalizado `{api.example.com}` e o estágio de API mapeado para um caminho base (`{basePath}`) sob o nome de domínio personalizado, a URL base de uma API REST se torna a seguinte: 

```
https://{api.example.com}/{basePath}
```

 Para cada estágio, você pode otimizar o a performance da API ajustando os limites de controle de fluxo de solicitações em nível de conta padrão e habilitando o armazenamento em cache da API. Você também pode habilitar o registro em log de chamadas de API no CloudTrail ou no CloudWatch e selecionar um certificado de cliente para o backend autenticar as solicitações da API. Além disso, você pode substituir as configurações em nível de estágio para os métodos individuais e definir as variáveis de estágio para passar contextos de ambiente específicos de estágio para a integração da API em tempo de execução. 

Os estágios permitem um controle de versão robusto para sua API. Por exemplo, você pode implantar uma API em um estágio `test` e um `prod`, e usar o estágio `test` como uma compilação de teste e o estágio `prod` como uma compilação estável. Depois que as atualizações passarem no teste, você poderá promover o estágio `test` para o estágio `prod`. A promoção pode ser feita por meio da reimplantação da API no estágio `prod` ou da atualização do valor de uma variável de estágio do nome de estágio `test` para `prod`.

 Nesta seção, discutiremos como implantar uma API usando o [console do API Gateway](https://console.aws.amazon.com/apigateway) ou chamando a [API REST do API Gateway](https://docs.aws.amazon.com/apigateway/latest/api/). Para usar outras ferramentas, consulte a documentação da [CLI da AWS](https://docs.aws.amazon.com/cli/latest/reference/apigateway/) ou um [SDK da AWS](https://aws.amazon.com/developer/tools/#sdk). 

**Topics**
+ [Criar uma implantação para uma API REST no API Gateway](set-up-deployments.md)
+ [Configurar um estágio para uma API REST no API Gateway](set-up-stages.md)
+ [Configurar uma implantação de versão canary do API Gateway](canary-release.md)
+ [Atualizações das APIs REST que exigem reimplantação](updating-api.md)