

# Alterar um tipo de endpoint de API pública ou privada no API Gateway
<a name="apigateway-api-migration"></a>

Alterar o tipo de endpoint da API requer que você atualize a configuração da API. É possível alterar um tipo de API existente usando o console do API Gateway, a AWS CLI ou um SDK da AWS para API Gateway. O tipo de endpoint não poderá ser alterado novamente até que a alteração atual seja concluída, mas a API estará disponível. 

Há suporte para as seguintes alterações nos tipos de endpoints:
+ De “otimizada para borda” para “regional” ou “privada”
+ De “regional” para “otimizada para borda” ou “privada”
+ De “privada” para “regional”

Não é possível alterar uma API privada para uma API otimizada para fronteiras.

Se você está alterando uma API pública do tipo “otimizada para borda” para “regional” ou vice-versa, observe que uma API otimizada para borda pode ter comportamentos diferentes em comparação com uma API regional. Por exemplo, uma API otimizada para fronteiras remove o cabeçalho `Content-MD5`. Qualquer valor de hash MD5 transmitido para o backend pode ser expresso em um parâmetro de string de solicitação ou uma propriedade de corpo. No entanto, a API regional transmite esse cabeçalho, embora ela possa remapear o nome do cabeçalho para outro nome. A compreensão das diferenças ajuda você a decidir como atualizar de uma API otimizada para borda para uma regional ou de uma API regional para uma otimizada para borda. 

**Topics**
+ [Usar o console do API Gateway para alterar um tipo de endpoint de API](#migrate-api-using-console)
+ [Usar a AWS CLI para alterar um tipo de endpoint de API](#migrate-api-using-aws-cli)

## Usar o console do API Gateway para alterar um tipo de endpoint de API
<a name="migrate-api-using-console"></a>

Para alterar o tipo de endpoint de API da sua API, realize um dos seguintes conjuntos de etapas:

**Como converter um endpoint público de regional em otimizado para borda e vice-versa**

1. Inicie uma sessão no console do API Gateway em [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Escolha uma API REST.

1. Escolha **Configurações da API**.

1. Na seção **Detalhes da API**, escolha **Editar**.

1. **Em **Tipo de endpoint da API**, selecione Otimizado para borda** ou **Regional**.

1. Escolha **Salvar alterações**.

1. Reimplante sua API para que as alterações sejam aplicadas.

**Converter um endpoint privado em um endpoint regional**

1. Inicie uma sessão no console do API Gateway em [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Escolha uma API REST.

1. Edite a política de recursos da sua API para remover qualquer menção de VPCs ou endpoints da VPC, a fim de que as chamadas de API de fora ou de dentro da sua VPC sejam bem-sucedidas.

1. Escolha **Configurações da API**.

1. Na seção **Detalhes da API**, escolha **Editar**.

1. Em **Tipo de endpoint da API**, escolha **Regional**.

1. Escolha **Salvar alterações**.

1. Remova a política de recursos da sua API.

1. Reimplante sua API para que as alterações sejam aplicadas.

   Como você está migrando o tipo de endpoint de privado para Regional, o API Gateway altera o tipo de endereço IP para IPv4. Para obter mais informações, consulte [Tipos de endereço IP para APIs REST no API Gateway](api-gateway-ip-address-type.md).

**Converter um endpoint regional em um endpoint privado**

1. Inicie uma sessão no console do API Gateway em [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Escolha uma API REST.

1. Crie uma política de recursos que conceda acesso a VPC ou ao endpoint da VPC. Para obter mais informações, consulte [Etapa 3: Configurar uma política de recursos para uma API privada](apigateway-private-api-create.md#apigateway-private-api-set-up-resource-policy).

1. Escolha **Configurações da API**.

1. Na seção **Detalhes da API**, escolha **Editar**.

1. Em **Tipo de endpoint de API**, escolha **Privado**.

1. (Opcional) Para **IDs de endpoint da VPC**, selecione as IDs de endpoint da VPC que você deseja associar à API privada. 

1. Escolha **Salvar alterações**.

1. Reimplante sua API para que as alterações sejam aplicadas.

   Como você está migrando o tipo de endpoint de Regional para privado, o API Gateway altera o tipo de endereço IP para pilha dupla. Para obter mais informações, consulte [Tipos de endereço IP para APIs REST no API Gateway](api-gateway-ip-address-type.md).

## Usar a AWS CLI para alterar um tipo de endpoint de API
<a name="migrate-api-using-aws-cli"></a>

O comando [update-rest-api](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-rest-api.html) indicado abaixo atualiza uma API otimizada para borda para uma API regional: 

```
aws apigateway update-rest-api \
    --rest-api-id a1b2c3 \
    --patch-operations op=replace,path=/endpointConfiguration/types/EDGE,value=REGIONAL
```

A resposta bem-sucedida tem um código de status de `200 OK` e uma carga semelhante ao seguinte:

```
{
    "createdDate": "2017-10-16T04:09:31Z",
    "description": "Your first API with Amazon API Gateway. This is a sample API that integrates via HTTP with our demo Pet Store endpoints",
    "endpointConfiguration": {
        "types": "REGIONAL"
    },
    "id": "a1b2c3",
    "name": "PetStore imported as edge-optimized"
}
```

O comando [update-rest-api](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-rest-api.html) indicado abaixo atualiza uma API regional para uma API otimizada para borda:

```
aws apigateway update-rest-api \
    --rest-api-id a1b2c3 \
    --patch-operations op=replace,path=/endpointConfiguration/types/REGIONAL,value=EDGE
```

Como [put-rest-api](https://docs.aws.amazon.com/cli/latest/reference/apigateway/put-rest-api.html) é usado para atualizar as definições de API, não é aplicável à atualização de um tipo de endpoint de API.