

# Tipos de punto de conexión para las API de REST en API Gateway
<a name="api-gateway-api-endpoint-types"></a>

Los tipos de *[punto de enlace de API](api-gateway-basic-concept.md#apigateway-definition-api-endpoints)* hacen referencia al nombre de host de la API. El tipo de punto de conexión de la API puede ser *optimizado para sistemas perimetrales*, *regional* o *privado*, en función de dónde se origine la mayoría del tráfico de la API.

## Punto de enlace de API optimizado para bordes
<a name="api-gateway-api-endpoint-types-edge-optimized"></a>

Un *[punto de conexión de API optimizada para límites](api-gateway-basic-concept.md#apigateway-definition-edge-optimized-api-endpoint)* normalmente dirige las solicitudes al punto de presencia (POP) de CloudFront más cercano, lo que podría ayudar en caso de que sus clientes estén en distintas ubicaciones geográficas. Este es el tipo de punto de enlace predeterminado para las API REST de API Gateway.

Las API optimizadas para sistemas perimetrales utilizan mayúsculas en la inicial de los nombres de los [encabezados HTTP](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers) (por ejemplo, `Cookie`).

CloudFront ordena las cookies HTTP según su nombre antes de reenviar la solicitud al origen. Para obtener más información sobre el modo en que CloudFront procesa las cookies, consulte [Almacenamiento en caché de contenido en función de cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html).

Cualquier nombre de dominio personalizado que se utilice con una API optimizada para sistemas perimetrales se aplicará a todas las regiones.

## Puntos de enlace de API regionales
<a name="api-gateway-api-endpoint-types-regional"></a>

Un *[punto de conexión de la API regional](api-gateway-basic-concept.md#apigateway-definition-regional-api-endpoint)* está destinado a los clientes que se encuentran en la misma región. Cuando un cliente que se ejecuta en una instancia de EC2 llama a una API en la misma región o cuando una API tiene por objeto servir a una cantidad reducida de clientes con altas demandas, una API regional reduce la sobrecarga de conexión.

Para una API regional, el nombre de dominio personalizado es específico de la región en la que está implementada la API. Si implementa una API regional en varias regiones, esta puede tener el mismo nombre de dominio personalizado en todas las regiones. Puede utilizar dominios personalizados junto con Amazon Route 53 para realizar tareas como el [direccionamiento basado en latencia](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-latency). Para obtener más información, consulte [Configuración de un nombre de dominio personalizado regional en API Gateway](apigateway-regional-api-custom-domain-create.md) y [Configuración de un nombre de dominio personalizado optimizado para la periferia para en API Gateway](how-to-edge-optimized-custom-domain-name.md).

Los puntos de enlace de API regionales transfieren todos los nombres de encabezado tal y como están.

**nota**  
En los casos en que los clientes de la API están dispersos geográficamente, sigue teniendo sentido utilizar un punto de conexión de API regional, junto con su propia distribución de Amazon CloudFront para garantizar que API Gateway no asocia la API con distribuciones de CloudFront controladas por servicios. Para obtener más información acerca de este caso de uso, consulte la sección sobre [cómo configurar API Gateway con mi propia distribución de CloudFront](https://repost.aws/knowledge-center/api-gateway-cloudfront-distribution).

## Puntos de enlace de API privados
<a name="api-gateway-api-endpoint-types-private"></a>

Un *[punto de enlace de API privado](api-gateway-basic-concept.md#apigateway-definition-private-api-endpoint)* es un punto de enlace de la API al que solo se pueda obtener acceso desde una Amazon Virtual Private Cloud (VPC) mediante un punto de enlace de la VPC de tipo interfaz, que es una interfaz de red de punto de enlace (ENI) que se crea en la VPC. Para obtener más información, consulte [API de REST privadas en API Gateway](apigateway-private-apis.md).

Los puntos de enlace de API privados transfieren todos los nombres de encabezado tal y como están.

# Cambio del tipo de punto de conexión de una API pública o privada en API Gateway
<a name="apigateway-api-migration"></a>

Para cambiar el tipo de un punto de conexión de API, es preciso actualizar la configuración de la API. Puede cambiar un tipo de API existente a través de la consola de API Gateway, la AWS CLI o un AWS SDK para API Gateway. El tipo de punto de conexión no puede volver a cambiarse hasta que se complete el cambio actual, pero la API estará disponible. 

Se admiten los siguientes cambios de tipo de puntos de conexión:
+ De optimizado para bordes a regional o privado
+ De regional a optimizado para bordes o privado
+ De privado a regional

No puede transformar una API privada en una API optimizada para límites.

Si va a cambiar una API pública de optimizada para borde a regional o viceversa, tenga en cuenta que una API optimizada para borde puede comportarse de forma distinta a una API regional. Por ejemplo, una API optimizada para límites elimina el encabezado `Content-MD5`. Cualquier valor de hash MD5 transmitido al backend se puede expresar en un parámetro de cadena de solicitud o una propiedad del cuerpo. Sin embargo, la API regional transmite este encabezado, aunque puede reasignar el nombre de encabezado a otro nombre. Comprender estas diferencias le ayudará a decidir cómo actualizar una API optimizada para borde a una regional o cómo actualizar una API regional a una optimizada para borde. 

**Topics**
+ [Uso de la consola de API Gateway para cambiar el tipo de punto de conexión de la API](#migrate-api-using-console)
+ [Uso de la AWS CLI para cambiar el tipo de punto de conexión de una API](#migrate-api-using-aws-cli)

## Uso de la consola de API Gateway para cambiar el tipo de punto de conexión de la API
<a name="migrate-api-using-console"></a>

Para cambiar el tipo de punto de conexión de la API, siga uno de estos procedimientos:

**Para convertir un punto de conexión público de regional u optimizado para límites y viceversa**

1. Inicie sesión en la consola de API Gateway en [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Elija una API de REST.

1. Elija **Configuración de la API**.

1. En la sección **Detalles de la API**, elija **Editar**.

1. En **Tipo de punto de conexión de la API**, seleccione **Optimizado para límites** o **Regional**.

1. Seleccione **Save changes (Guardar cambios)**.

1. Vuelva a implementar la API para que los cambios surtan efecto.

**Conversión de un punto de conexión privado en un punto de conexión regional**

1. Inicie sesión en la consola de API Gateway en [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Elija una API de REST.

1. Modifique la política de recursos de la API para eliminar cualquier mención a VPC o puntos de conexión de VPC, de modo que tanto las llamadas a la API que se realicen desde fuera de la VPC como las que se realicen desde dentro se ejecuten correctamente.

1. Elija **Configuración de la API**.

1. En la sección **Detalles de la API**, elija **Editar**.

1. En **Tipo de punto de conexión de la API**, seleccione **Regional**.

1. Seleccione **Save changes (Guardar cambios)**.

1. Quite la política de recursos de la API.

1. Vuelva a implementar la API para que los cambios surtan efecto.

   Como está migrando el tipo de punto de conexión de privado a regional, API Gateway cambia el tipo de dirección IP a IPv4. Para obtener más información, consulte [Tipos de direcciones IP para API de REST en API Gateway](api-gateway-ip-address-type.md).

**Conversión de un punto de conexión regional en un punto de conexión privado**

1. Inicie sesión en la consola de API Gateway en [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Elija una API de REST.

1. Cree una política de recursos que conceda acceso a la VPC o al punto de conexión de VPC. Para obtener más información, consulte [Paso 3: Configuración de una política de recursos para una API privada](apigateway-private-api-create.md#apigateway-private-api-set-up-resource-policy).

1. Elija **Configuración de la API**.

1. En la sección **Detalles de la API**, elija **Editar**.

1. En **Tipo de punto de conexión de la API**, seleccione **Privado**.

1. (Opcional) Para **ID del punto de conexión de VPC**, seleccione los ID de punto de conexión de VPC que desea asociar a la API privada. 

1. Seleccione **Save changes (Guardar cambios)**.

1. Vuelva a implementar la API para que los cambios surtan efecto.

   Como está migrando el tipo de punto de conexión de regional a privado, API Gateway cambia el tipo de dirección IP a pila doble. Para obtener más información, consulte [Tipos de direcciones IP para API de REST en API Gateway](api-gateway-ip-address-type.md).

## Uso de la AWS CLI para cambiar el tipo de punto de conexión de una API
<a name="migrate-api-using-aws-cli"></a>

El siguiente comando [update-rest-api](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-rest-api.html) permite actualizar una API optimizada para bordes a una API regional: 

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

La respuesta correcta tiene un código de estado `200 OK` y una carga similar a la siguiente:

```
{
    "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"
}
```

El siguiente comando [update-rest-api](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-rest-api.html) permite actualizar una API regional a una API optimizada para bordes:

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

Dado que [put-rest-api](https://docs.aws.amazon.com/cli/latest/reference/apigateway/put-rest-api.html) se utiliza para actualizar definiciones de API, no puede utilizarse para actualizar un tipo de punto de conexión de API.