

# ¿Qué es Amazon API Gateway?
<a name="welcome"></a>

Amazon API Gateway es un servicio de AWS para la creación, la publicación, el mantenimiento, el monitoreo y la protección de las API REST, HTTP y de WebSocket a cualquier escala. Los desarrolladores de API pueden crear API que obtengan acceso a AWS o a otros servicios web, así como los datos almacenados en la [nube de AWS](https://aws.amazon.com/what-is-cloud-computing/). Como desarrollador de API de API Gateway, puede crear API para su uso en sus propias aplicaciones de cliente. También puede ofrecer sus API a otros desarrolladores de aplicaciones externos. Para obtener más información, consulte [¿Quiénes utilizan API Gateway?](api-gateway-overview-developer-experience.md#apigateway-who-uses-api-gateway).

API Gateway crea API RESTful que:
+ Se basan en HTTP.
+ Habilitan la comunicación entre cliente y servidor sin estado.
+ Implementan métodos HTTP estándar como, por ejemplo, GET, POST, PUT, PATCH y DELETE.

Para obtener más información acerca de las API REST de API Gateway y las API HTTP, consulte [Elección entre las API de REST y las API de HTTP](http-api-vs-rest.md), [API de HTTP de API Gateway](http-api.md), [Uso de API Gateway para crear API REST](api-gateway-overview-developer-experience.md#api-gateway-overview-rest) y [Desarrollo de las API de REST en API Gateway](rest-api-develop.md).

API Gateway crea API de WebSocket que:
+ Cumplen el protocolo [WebSocket](https://datatracker.ietf.org/doc/html/rfc6455), que permite la comunicación entre el cliente y el servidor de dúplex completo con estado.
+ Dirigen mensajes entrantes en función del contenido de los mensajes.

Para obtener más información sobre las API de WebSocket de API Gateway, consulte [Uso de API Gateway para crear API de WebSocket](api-gateway-overview-developer-experience.md#api-gateway-overview-websocket) y [Descripción general de las API de WebSocket en API Gateway](apigateway-websocket-api-overview.md).

**Topics**
+ [Arquitectura de API Gateway](#api-gateway-overview-aws-backbone)
+ [Características de API Gateway](#api-gateway-overview-features)
+ [Casos de uso de API Gateway](api-gateway-overview-developer-experience.md)
+ [Acceso a API Gateway](#introduction-accessing-apigateway)
+ [Parte de la infraestructura sin servidor de AWS](#api-gateway-overview-a-serverless-pillar)
+ [Cómo comenzar a usar Amazon API Gateway](#welcome-how-to-get-started)
+ [Conceptos de Amazon API Gateway](api-gateway-basic-concept.md)
+ [Elección entre las API de REST y las API de HTTP](http-api-vs-rest.md)
+ [Introducción a la consola de la API de REST](getting-started-rest-new-console.md)

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

En el siguiente diagrama se muestra la arquitectura de API Gateway.

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


Este diagrama ilustra cómo las API que crea en Amazon API Gateway le proporcionan a usted o a sus clientes desarrolladores una experiencia de desarrollador integrada y coherente para crear aplicaciones sin servidor de AWS. API Gateway gestiona todas las tareas relacionadas con la aceptación y el procesamiento de centenares de miles de llamadas simultáneas a la API. Estas tareas incluyen la administración del tráfico, el control de la autorización y el acceso, el monitoreo y la administración de versiones de la API. 

API Gateway actúa como una "puerta principal" para que las aplicaciones accedan a datos, lógica empresarial o funcionalidad desde sus servicios de backend, como cargas de trabajo que se ejecutan en Amazon Elastic Compute Cloud (Amazon EC2), código que se ejecuta en AWS Lambda, cualquier aplicación web o aplicaciones de comunicación en tiempo real.

## Características de API Gateway
<a name="api-gateway-overview-features"></a>

Amazon API Gateway ofrece características como las siguientes:
+ Compatibilidad con las API con estado ([WebSocket](apigateway-websocket-api.md)) y las API ([HTTP](http-api.md) y [REST](apigateway-rest-api.md)).
+ Mecanismos de [autenticación](apigateway-control-access-to-api.md) eficaces y flexibles, como políticas de AWS Identity and Access Management, funciones de autorizador de Lambda y grupos de usuarios de Amazon Cognito.
+ [Implementaciones de la versión Canary](canary-release.md) para el despliegue de cambios de forma segura.
+ Registro de [CloudTrail](cloudtrail.md) y monitoreo del uso y de los cambios en las API.
+ Registro de acceso y registro de ejecución de CloudWatch, que incluye la posibilidad de establecer alarmas. Para obtener más información, consulte [Supervisión de la ejecución de la API de REST con métricas de Amazon CloudWatch](monitoring-cloudwatch.md) y [Supervisión de la ejecución de la API de WebSocket con métricas de CloudWatch](apigateway-websocket-api-logging.md).
+ Posibilidad de utilizar plantillas de CloudFormation para habilitar la creación de las API. Para obtener más información, consulte [Referencia de tipos de recursos de Amazon API Gateway](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ApiGateway.html) y [Referencia de tipos de recursos de Amazon API Gateway V2](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ApiGatewayV2.html).
+ Soporte para los [nombres de dominio personalizados](how-to-custom-domains.md).
+ Integración con [AWS WAF](apigateway-control-access-aws-waf.md) para la protección de sus API frente a ataques web comunes.
+ Integración con [AWS X-Ray](apigateway-xray.md) para comprender y cribar latencias de rendimiento.

Para obtener una lista completa de lanzamientos de características de API Gateway, consulte [Historial de revisión](history.md).

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

En la siguiente sección de casos de uso se presenta una descripción general de los distintos tipos de API de API Gateway y de los distintos tipos de desarrolladores que utilizan API Gateway. Para obtener información más detallada sobre las diferencias entre las API HTTP y las API de REST, consulte [Elección entre las API de REST y las API de HTTP](http-api-vs-rest.md).

**Topics**
+ [Uso de API Gateway para crear API REST](#api-gateway-overview-rest)
+ [Uso de API Gateway para crear API HTTP](#api-gateway-overview-http)
+ [Uso de API Gateway para crear API de WebSocket](#api-gateway-overview-websocket)
+ [¿Quiénes utilizan API Gateway?](#apigateway-who-uses-api-gateway)

## Uso de API Gateway para crear API REST
<a name="api-gateway-overview-rest"></a>

Una API REST de API Gateway está formada por recursos y métodos. Un recurso es una entidad lógica a la que una aplicación puede acceder a través de una ruta de recursos. Un método se corresponde con una solicitud de la API de REST enviada por el usuario de la API y la respuesta devuelta al usuario. 

Por ejemplo, `/incomes` podría ser la ruta de un recurso que representa los ingresos del usuario de la aplicación. Un recurso puede tener una o varias operaciones, las cuales definen los verbos HTTP correspondientes, por ejemplo, GET, POST PUT, PATCH y DELETE. Una combinación de una ruta de recurso y una operación identifica un método de la API. Por ejemplo, un método `POST /incomes` podría añadir una ganancia devengada por el intermediario y un método `GET /expenses` podría consultar los gastos en los que ha incurrido el intermediario. 

La aplicación no necesita saber dónde se almacenan y de dónde se obtienen los datos solicitados en el backend. En las API REST de API Gateway, el frontend se encapsula mediante *solicitudes de métodos* y *respuestas de métodos*. La API se conecta con el backend por medio de *solicitudes de integración* y *respuestas de integración*.

Por ejemplo, con DynamoDB como backend, el desarrollador de la API configura la solicitud de integración para reenviar la solicitud del método de entrada al backend elegido. La configuración incluye las especificaciones de acción de DynamoDB adecuadas y los roles y políticas de IAM necesarios, así como la transformación de los datos de entrada correcta. El backend devuelve el resultado a API Gateway como una respuesta de integración. 

Para dirigir la respuesta de integración a una respuesta de método adecuada (de un determinado código de estado HTTP) al cliente, puede configurar la respuesta de integración para que mapee los parámetros de respuesta necesarios desde la integración del método. A continuación, si fuera necesario, convierta el formato de los datos de salida del backend al del frontend. API Gateway le permite definir un esquema o modelo de [carga](https://en.wikipedia.org/wiki/Payload_(computing)) para facilitar la configuración de la plantilla de mapeo de cuerpo.

API Gateway proporciona funcionalidad de administración de la API REST, como a siguiente:
+ Soporte para generar SDK y crear la documentación de API mediante extensiones de OpenAPI de API Gateway
+ Limitación controlada de solicitudes HTTP

## Uso de API Gateway para crear API HTTP
<a name="api-gateway-overview-http"></a>

Las API HTTP le permiten crear API de RESTful con menor latencia y menor costo que las API de REST.

Puede utilizar las API HTTP para enviar solicitudes a funciones de AWS Lambda o a cualquier punto de conexión HTTP públicamente direccionable.

Por ejemplo, puede crear una API HTTP que se integre con una función de Lambda en el backend. Cuando un cliente llama a la API, API Gateway envía la solicitud a la función de Lambda y devuelve la respuesta de la función al cliente.

Las API HTTP son compatibles con la autorización de [OpenID Connect](https://openid.net/developers/how-connect-works/) y [OAuth 2.0](https://oauth.net/2/). Vienen con soporte integrado para el uso compartido de recursos entre orígenes (CORS) y las implementaciones automáticas.

Para obtener más información, consulte [Elección entre las API de REST y las API de HTTP](http-api-vs-rest.md).

## Uso de API Gateway para crear API de WebSocket
<a name="api-gateway-overview-websocket"></a>

En una API de WebSocket, el cliente y el servidor pueden enviarse mensajes entre sí en cualquier momento. Los servidores de backend pueden enviar fácilmente datos a los usuarios y dispositivos conectados, lo que evita la necesidad de implementar complejos mecanismos de sondeo.

Por ejemplo, podría crear una aplicación sin servidor mediante una API de WebSocket de API Gateway y AWS Lambda para enviar y recibir mensajes entre usuarios individuales o grupos de usuarios de una sala de conversación. También puede invocar servicios de backend como por ejemplo AWS Lambda, Amazon Kinesis o un punto de conexión HTTP en función del contenido de los mensajes.

Puede utilizar la API de WebSocket de API Gateway para crear aplicaciones seguras de comunicación en tiempo real sin tener que aprovisionar ni administrar servidores para administrar las conexiones o los intercambios de datos a gran escala. Los casos de uso focalizados incluyen aplicaciones en tiempo real, como la siguiente:
+ Aplicaciones de chat
+ Paneles en tiempo real como los de cotizaciones bursátiles
+ Alertas y notificaciones en tiempo real

API Gateway proporciona funcionalidad de administración de la API de WebSocket, como la siguiente:
+ Monitoreo y limitación controlada de las conexiones y los mensajes
+ Uso de AWS X-Ray para rastrear los mensajes que se transfieren a través de las API a los servicios de backend
+ Integración sencilla con puntos de conexión HTTP/HTTPS

## ¿Quiénes utilizan API Gateway?
<a name="apigateway-who-uses-api-gateway"></a>

Existen dos tipos de desarrolladores que utilizan API Gateway: los desarrolladores de API y los desarrolladores de aplicaciones.

Un desarrollador de API crea e implementa una API para habilitar la funcionalidad necesaria en API Gateway. El desarrollador de API debe ser un usuario en la cuenta de AWS que posee la API.

Un desarrollador de aplicaciones diseña una aplicación funcional que llama a los servicios de AWS mediante la invocación de una API de WebSocket o REST creada por un desarrollador de API en API Gateway.

El desarrollador de aplicaciones es el cliente del desarrollador de API. El desarrollador de aplicaciones no necesita tener una cuenta de AWS, siempre que la API no requiera permisos de IAM, o bien admita la autorización de usuarios a través proveedores de identidad federada de terceros admitidos por la [Federación de identidades de grupos de usuarios de Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/). Los proveedores de identidad incluyen a Amazon, el grupo de usuarios de Amazon Cognito, Facebook y Google.

### Creación y administración de una API de API Gateway
<a name="api-gateway-overview-developer-experience-managing-api"></a>

Para crear, configurar e implementar una API, un desarrollador de API trabaja con el componente del servicio de API Gateway para administración de la API, denominado `apigateway`.

Como desarrollador de API, puede crear y administrar una API mediante la consola de API Gateway tal y como se describe en [Introducción a API Gateway](getting-started.md) o llamando a la [Referencias de API](api-ref.md). Existen varias maneras de llamar a esta API. Incluyen el uso de AWS Command Line Interface (AWS CLI), o mediante un SDK de AWS. Además, puede habilitar la creación de la API con [Plantillas de AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-reference.html) o, en el caso de las API REST y HTTP, con [Extensiones de OpenAPI para API Gateway](api-gateway-swagger-extensions.md). 

Para obtener una lista de las regiones en las que API Gateway está disponible, así como los puntos de conexión del servicio de control asociados, consulte [Cuotas y puntos de conexión de Amazon API Gateway](https://docs.aws.amazon.com/general/latest/gr/apigateway.html).

### Llamadas a un API de API Gateway
<a name="api-gateway-overview-developer-experience-invoking-api"></a>

Un desarrollador de aplicaciones trabaja con el componente de servicio de API Gateway para ejecución de la API, denominado `execute-api`, para invocar una API que se ha creado o implementado en API Gateway. La API creada expone las entidades de programación subyacentes. Existen varias maneras de llamar a dicha API. Para obtener más información, consulte [Invocación de las API de REST en API Gateway](how-to-call-api.md) y [Invocación de las API de WebSocket](apigateway-how-to-call-websocket-api.md).

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

Puede obtener acceso a Amazon API Gateway de las siguientes formas:
+ **Consola de administración de AWS**: la Consola de administración de AWS proporciona una interfaz web que permite crear y administrar las API. Una vez completados los pasos que se indican en [Configuración para usar API Gateway](setting-up.md), puede acceder a la consola de API Gateway en [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).
+ **AWS SDK**: si utiliza un lenguaje de programación para el que AWS proporciona un SDK, puede usar un SDK para obtener acceso a API Gateway. Los SDK simplifican la autenticación, se integran fácilmente con su entorno de desarrollo y proporcionan acceso a los comandos de API Gateway. Para obtener más información, consulte [Herramientas para Amazon Web Services](https://aws.amazon.com/developer/tools/).
+ **API de API Gateway V1 y V2**: si utiliza un lenguaje de programación para el que no haya un SDK disponible, consulte la [Referencia de la API de Amazon API Gateway versión 1](https://docs.aws.amazon.com/apigateway/latest/api/API_Operations.html) y la [Referencia de la API de Amazon API Gateway versión 2](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/api-reference.html).
+ **AWS Command Line Interface**: para obtener más información, consulte [Configuración inicial de la AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/) en la *Guía del usuario de AWS Command Line Interface*.
+ **AWS Tools for Windows PowerShell**: para obtener más información, consulte [Configuración de AWS Tools for Windows PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/) en la *Guía del usuario de Herramientas de AWS para PowerShell*.

## Parte de la infraestructura sin servidor de AWS
<a name="api-gateway-overview-a-serverless-pillar"></a>

Junto con [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/), API Gateway es la parte de la infraestructura sin servidor de AWS orientada a la aplicación. Para obtener más información sobre cómo empezar a usar la tecnología sin servidor, consulte [Guía para desarrolladores de tecnología sin servidor](https://docs.aws.amazon.com/serverless/latest/devguide/welcome.html).

Para que una aplicación llame a los servicios de AWS disponibles públicamente, puede utilizar Lambda para interactuar con los servicios necesarios y exponer las funciones de Lambda a través de los métodos de API de API Gateway. AWS Lambda ejecuta el código en una infraestructura informática de alta disponibilidad. Realiza todos los procesos de ejecución y administración que necesitan los recursos informáticos. Para habilitar las aplicaciones sin servidor, API Gateway es compatible con las [integraciones de proxy optimizadas](api-gateway-set-up-simple-proxy.md) con puntos de conexión de AWS Lambda y HTTP. 

## Cómo comenzar a usar Amazon API Gateway
<a name="welcome-how-to-get-started"></a>

Para obtener una introducción a Amazon API Gateway, consulte lo siguiente:
+ [Introducción a API Gateway](getting-started.md), que proporciona una explicación para crear una API HTTP.
+ [Serverless land](https://serverlessland.com/video?tag=Amazon%20API%20Gateway), que proporciona videos instructivos.
+ [Happy Little API Shorts](https://www.youtube.com/playlist?list=PLJo-rJlep0EDFw7t0-IBHffVYKcPMDXHY), que es una serie de breves vídeos instructivos.

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

En la siguiente sección se describen los conceptos introductorios sobre el uso de API Gateway.

**API Gateway**  <a name="apigateway-definition-apigateway"></a>
API Gateway es un servicio de AWS que admite lo siguiente:  
+ Crear, implementar y administrar una interfaz de programación de aplicaciones (API) [RESTful](https://en.wikipedia.org/wiki/Representational_state_transfer) para exponer los puntos de enlace HTTP del backend, funciones de AWS Lambda u otros servicios de AWS.
+ Crear, implementar y administrar una API de [WebSocket](https://datatracker.ietf.org/doc/html/rfc6455) para exponer funciones de AWS Lambda u otros servicios de AWS.
+ Invocar los métodos de API expuestos a través de los puntos de enlace HTTP y WebSocket del frontend.

**API REST de API Gateway**  <a name="apigateway-definition-apigateway-api"></a>
Una colección de recursos y métodos HTTP que se integran con puntos de enlace HTTP de backend, funciones de Lambda u otros servicios de AWS. Puede implementar esta colección en una o más etapas. Normalmente, los recursos de la API están organizados en un árbol de recursos de acuerdo con la lógica de la aplicación. Cada recurso de la API puede exponer uno o varios métodos de la API que tienen verbos HTTP únicos admitidos por API Gateway. Para obtener más información, consulte [Elección entre las API de REST y las API de HTTP](http-api-vs-rest.md).

**API HTTP de API Gateway**  <a name="apigateway-definition-http-api"></a>
Colección de rutas y métodos integrados con los puntos de enlace HTTP de backend o funciones de Lambda. Puede implementar esta colección en una o más etapas. Cada ruta puede exponer uno o varios métodos de la API que tienen verbos HTTP únicos admitidos por API Gateway. Para obtener más información, consulte [Elección entre las API de REST y las API de HTTP](http-api-vs-rest.md).

**API de WebSocket de API Gateway**  <a name="apigateway-definition-apigateway-websocket-api"></a>
Una colección de rutas y claves de ruta de WebSocket que se integran en puntos de enlace HTTP de backend, funciones de Lambda u otros servicios de AWS. Puede implementar esta colección en una o más etapas. Los métodos de la API se invocan a través de conexiones WebSocket del frontend que se pueden asociar a un nombre de dominio personalizado registrado.

**Implementación de API**  <a name="apigateway-definition-api-deployment"></a>
Una instantánea de un momento dado de la API de API Gateway. Para que los clientes puedan utilizar la implementación, esta debe asociarse a una o más etapas de API.

**Desarrollador de la API**  <a name="apigateway-definition-api-developer"></a>
Su cuenta de AWS que es propietaria de una implementación de API Gateway (por ejemplo, un proveedor de servicios que también admite el acceso mediante programación).

**Punto de enlace de la API**  <a name="apigateway-definition-api-endpoints"></a>
Un nombre de host para una API de API Gateway que se implementa en una región específica. El nombre de host tiene el formato `{api-id}.execute-api.{region}.amazonaws.com`. Se admiten los siguientes tipos de puntos de enlace de API:  
+ [Punto de enlace de API optimizada para límites](#apigateway-definition-edge-optimized-api-endpoint)
+ [Punto de enlace de API privada](#apigateway-definition-private-api-endpoint)
+ [Punto de enlace de API regional](#apigateway-definition-regional-api-endpoint)

**Clave de API**  <a name="apigateway-definition-api-key"></a>
Cadena alfanumérica que API Gateway utiliza para identificar a un desarrollador de aplicaciones que utiliza su API REST o de WebSocket. API Gateway puede generar claves de API en su nombre o usted puede importarlas desde un archivo CSV. Puede utilizar claves de API junto con [autorizadores de Lambda](apigateway-use-lambda-authorizer.md) o [planes de uso](api-gateway-api-usage-plans.md) para controlar el acceso a sus API.  
Consulte los [puntos de enlace de API](#apigateway-definition-api-endpoints).

**Propietario de API**  <a name="apigateway-definition-api-owner"></a>
Consulte [Desarrollador de la API](#apigateway-definition-api-developer).

**Etapa de API**  <a name="apigateway-definition-api-stage"></a>
Una referencia lógica a un estado del ciclo de vida de la API (por ejemplo, 'dev', 'prod', 'beta', 'v2'). Las etapas de API se identifican por un ID y un nombre de etapa de API.

**Desarrolladores de aplicaciones**  <a name="apigateway-definition-app-developer"></a>
Un creador de aplicaciones que puede tener o no una cuenta de AWS y que interactúa con la API que usted, el desarrollador de API, ha implementado. Los desarrolladores de aplicaciones son sus clientes. Un desarrollador de aplicaciones suele identificarse por una [clave de API](#apigateway-definition-api-key).

**URL de devolución de llamada**  
Cuando un cliente nuevo se conecta a través de una conexión WebSocket, se puede llamar a una integración en API Gateway para almacenar la URL de devolución de llamada del cliente. Esa URL de devolución de llamada se puede utilizar para enviar mensajes al cliente desde el sistema backend.

**Portal para desarrolladores**  <a name="apigateway-definition-developer-portal"></a>
Una aplicación en la que los proveedores de API pueden compartir sus API y su documentación con los consumidores de API. Las API se agrupan en productos, que son una recopilación de puntos de conexión de las API de REST, documentación de la API y documentación complementaria del producto.  
Consulte los [portales de API Gateway](apigateway-portals.md).

**Punto de enlace de API optimizada para límites**  <a name="apigateway-definition-edge-optimized-api-endpoint"></a>
El nombre de host predeterminado de una API de API Gateway implementada en la región especificada, mientras se utiliza una distribución de CloudFront para facilitar el acceso de los clientes, normalmente, desde otras regiones de AWS. Las solicitudes de API se dirigen al punto de presencia de CloudFront más cercano, que normalmente mejora el tiempo de conexión para clientes en distintas ubicaciones geográficas.  
Consulte los [puntos de enlace de API](#apigateway-definition-api-endpoints).

**Solicitud de integración**  <a name="apigateway-definition-integration-request"></a>
La interfaz interna de una ruta de API de WebSocket o un método de API REST en API Gateway, en la que se asignará el cuerpo de una solicitud de ruta o los parámetros y el cuerpo de una solicitud de método a los formatos requeridos por el backend.

**Respuesta de integración**  <a name="apigateway-definition-integration-response"></a>
La interfaz interna de una ruta de API de WebSocket o un método de API REST en API Gateway, en la que se asignarán los códigos de estado, los encabezados y la carga que se reciben del backend al formato de respuesta que se devuelve a una aplicación cliente.

**Plantilla de asignación**  <a name="apigateway-definition-mapping-template"></a>
Un script escrito en [Velocity Template Language (VTL)](https://velocity.apache.org/engine/devel/vtl-reference.html), que transforma un cuerpo de la solicitud del formato de datos del frontend al formato de datos del backend o viceversa (en el caso del cuerpo de la respuesta). Las plantillas de asignación se pueden especificar en la solicitud de integración o en la respuesta de integración. Pueden hacer referencia a datos disponibles en tiempo de ejecución como contexto y variables de etapa.   
La asignación puede ser tan sencilla como una [transformación de identidad](https://en.wikipedia.org/wiki/Identity_transform) que transfiere los encabezados o el cuerpo a través de la integración tal cual desde el cliente al backend para una solicitud. Lo mismo sucede con la respuesta, en la que la carga se transmite desde el backend al cliente.

**Solicitud de método**  <a name="apigateway-definition-method-request"></a>
La interfaz pública de un método de una API de API Gateway que define los parámetros y el cuerpo que un desarrollador de aplicaciones debe enviar en las solicitudes para acceder al backend a través de la API.

**Respuesta de método**  <a name="apigateway-definition-method-response"></a>
La interfaz pública de una API de REST que define los códigos de estado, los encabezados y los modelos de cuerpo que un desarrollador de aplicaciones debería esperar en las respuestas de la API. 

**Integración simulada**  <a name="apigateway-definition-mock-integration"></a>
En una integración simulada, las respuestas de la API se generan directamente a partir de API Gateway, sin necesidad de un backend de integración. Como desarrollador de una API, puede decidir cómo API Gateway responde a una solicitud de integración simulada. Para ello, configura la solicitud de integración y la respuesta de integración del método para asociar una respuesta a un código de estado determinado.

**Modelo**  <a name="apigateway-definition-model"></a>
Un esquema de datos que especifica la estructura de datos de una solicitud o carga de respuesta. Es necesario un modelo para generar un SDK con establecimiento inflexible de tipos de una API. También se utiliza para validar cargas. Un modelo es cómodo para generar una plantilla de asignación de muestra para iniciar la creación de una plantilla de asignación de producción. Aunque es útil, no se requiere para crear una plantilla de asignación.

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

**Producto del portal**  <a name="apigateway-definition-product"></a>
Un servicio o una funcionalidad que desea compartir. El producto del portal es una recopilación de puntos de conexión REST de productos y páginas de productos. Los puntos de conexión REST de productos son los puntos de acceso al producto del portal y constan de la ruta y el método de una API de REST y la fase en la que se implementa. Las páginas de productos son documentación que proporciona para explicar cómo los consumidores de API pueden utilizar los puntos de conexión de los productos. Puede compartir productos entre cuentas de AWS para agregarlos a los portales.  
Consulte [Creación de un producto](apigateway-portals-create-portal-product.md).

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

**Punto de enlace de API privada**  <a name="apigateway-definition-private-api-endpoint"></a>
Un punto de enlace de API que se expone a través de puntos de enlace de la VPC de tipo interfaz y permite que un cliente obtenga acceso seguro a los recursos de una API privada dentro de una VPC. Las API privadas están aisladas de la red pública de Internet y solo se puede obtener acceso a ellas a través de los puntos de enlace de la VPC de API Gateway a los que se les ha concedido acceso.

**Integración privada**  <a name="apigateway-definition-private-integration"></a>
Tipo de integración de API Gateway que permite que un cliente tenga acceso a los recursos que se encuentran en la VPC de un usuario a través de un punto de enlace de una API REST privada sin exponerlos a la red pública de Internet.

**Integración de proxy**  <a name="apigateway-definition-proxy-integration"></a>
Una configuración simplificada de integración de API Gateway. Puede configurar una integración de proxy como una integración de proxy HTTP o como una integración de proxy de Lambda.   
En el caso de la integración de proxy HTTP, API Gateway transmite toda la solicitud y la respuesta entre el frontend y un backend HTTP. Para la integración de proxy Lambda, API Gateway envía toda la solicitud como entrada a una función de Lambda de backend. A continuación, API Gateway transforma el resultado de la función de Lambda en una respuesta HTTP del frontend.   
En las API de REST, la integración de proxy se utiliza normalmente con un recurso de proxy, que se representa mediante una variable de ruta expansiva (por ejemplo, `{proxy+}`) combinada con un método catch-all `ANY`.

**Creación rápida**  <a name="apigateway-definition-quick-create"></a>
Puede utilizar la creación rápida para simplificar la creación de una API HTTP. La creación rápida crea una API con una integración de Lambda o HTTP, una ruta de método catch-all predeterminada y una etapa predeterminada configurada para implementar automáticamente los cambios. Para obtener más información, consulte [Crear una API HTTP mediante la AWS CLI](http-api-develop.md#http-api-examples.cli.quick-create).

**Punto de enlace de API regional**  <a name="apigateway-definition-regional-api-endpoint"></a>
El nombre de host de una API implementada en la región especificada y pensada para prestar servicio a clientes, como, por ejemplo, instancias EC2, de la misma región de AWS. Las solicitudes de API se dirigen directamente a la API de API Gateway específica de la región sin pasar por ninguna distribución de CloudFront. Para las solicitudes destinadas a la misma región, existe un punto de enlace regional que evita el trayecto innecesario de ida y vuelta a una distribución de CloudFront.   
Además, puede aplicar el [direccionamiento basado en latencia](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-latency) a los puntos de enlace regionales para implementar una API en varias regiones con la misma configuración de punto de enlace de API regional, establecer el mismo nombre de dominio personalizado para cada API implementada y configurar registros de DNS basados en latencia en Route 53 para dirigir las solicitudes de los clientes a la región que tiene la mínima latencia.  
Consulte los [puntos de enlace de API](#apigateway-definition-api-endpoints).

**Ruta**  <a name="apigateway-definition-route"></a>
Se utiliza una ruta de WebSocket en API Gateway para dirigir los mensajes entrantes a una integración específica, como una función de AWS Lambda, según el contenido de los mensajes. Al definir la API de WebSocket, se especifica un clave de ruta y un backend de integración. La clave de ruta es un atributo del cuerpo del mensaje. Cuando se encuentra una coincidencia para la clave de ruta en un mensaje entrante, se invoca el backend de integración.   
También se puede establecer una ruta predeterminada para las claves de ruta no coincidentes o para especificar un modelo de proxy que transfiera el mensaje tal cual a los componentes del backend que realizan el direccionamiento y procesan la solicitud.

**Solicitud de ruta**  <a name="apigateway-definition-route-request"></a>
La interfaz pública de un método de API de WebSocket en API Gateway que define el cuerpo que un desarrollador de aplicaciones debe enviar en las solicitudes para obtener acceso al backend a través de la API.

**Respuesta de ruta**  <a name="apigateway-definition-route-response"></a>
La interfaz pública de una API de WebSocket que define los códigos de estado, los encabezados y los modelos de cuerpo que un desarrollador de aplicaciones debería esperar de API Gateway.

**Plan de uso**  <a name="apigateway-definition-usage-plan"></a>
Un [plan de uso](api-gateway-api-usage-plans.md) ofrece a determinados clientes de la API acceso a una o varias API de WebSocket o de REST implementadas. Puede utilizar un plan de uso para configurar la limitación controlada y los límites de cuota que se ejecutarán en claves de API de cliente individual.

**Conexión WebSocket**  
API Gateway mantiene una conexión persistente entre los clientes y API Gateway. No hay conexión persistente entre API Gateway y las integraciones de backend, como las funciones de Lambda. Los servicios de backend se invocan según sea necesario, en función del contenido de los mensajes recibidos de los clientes.

# Elección entre las API de REST y las API de HTTP
<a name="http-api-vs-rest"></a>

Las API de REST y las API HTTP son productos API de RESTful. Las API de REST admiten más funciones que las API HTTP, mientras que las API HTTP están diseñadas con características mínimas para que puedan ofrecerse a un precio más bajo. Elija las API de REST si necesita características como claves de API, limitación por cliente, validación de solicitudes, integración de AWS WAF o puntos de conexión de API privados. Elija las API de HTTP si no necesita las funciones incluidas con las API de REST.

En las siguientes secciones se resumen las características principales disponibles en las API de REST y las API HTTP. Cuando es necesario, se proporcionan enlaces adicionales para navegar entre las secciones de la API de REST y la API de HTTP de la Guía para desarrolladores de API Gateway.

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

El tipo de punto de conexión hace referencia al punto de conexión que API Gateway crea para su API. Para obtener más información, consulte [Tipos de punto de conexión para las API de REST en API Gateway](api-gateway-api-endpoint-types.md). 


| Tipo de punto de conexión | API de REST | API HTTP | 
| --- | --- | --- | 
|  [Optimizada para la periferia](api-gateway-api-endpoint-types.md#api-gateway-api-endpoint-types-edge-optimized)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) Sí  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/negative_icon.svg) No  | 
|  [Regional](api-gateway-api-endpoint-types.md#api-gateway-api-endpoint-types-regional)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) Sí  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) Sí  | 
|  [Private](api-gateway-api-endpoint-types.md#api-gateway-api-endpoint-types-private)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) Sí  | ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/negative_icon.svg) No  | 

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

API Gateway proporciona una serie de formas de proteger su API de ciertas amenazas, como actores malintencionados o picos de tráfico. Para obtener más información, consulte [Protección de sus API de REST en API Gateway](rest-api-protect.md) y [Protección de sus API de HTTP en API Gateway](http-api-protect.md).


| Características de seguridad | API de REST | API HTTP | 
| --- | --- | --- | 
|  [Autenticación TLS mutua](rest-api-mutual-tls.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) [Sí](rest-api-mutual-tls.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) [Sí](http-api-mutual-tls.md)  | 
|  [Certificados para autenticación de backend](getting-started-client-side-ssl-authentication.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) Sí  | ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/negative_icon.svg) No  | 
|  [AWS WAF](apigateway-control-access-aws-waf.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) Sí  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/negative_icon.svg) No  | 

## Autorización
<a name="http-api-vs-rest.differences.authorization"></a>

API Gateway admite varios mecanismos para controlar y administrar el acceso a la API. Para obtener más información, consulte [Control y administración del acceso a las API de REST en API Gateway](apigateway-control-access-to-api.md) y [Control y administración del acceso a las API HTTP en API Gateway](http-api-access-control.md).


| Opciones de autorización | API de REST | API HTTP | 
| --- | --- | --- | 
|  [IAM](permissions.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) [Sí](permissions.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) [Sí](http-api-access-control-iam.md)  | 
|  [Políticas de recursos](apigateway-resource-policies.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) Sí  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/negative_icon.svg) No   | 
|  [Amazon Cognito](apigateway-integrate-with-cognito.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) Sí  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) Sí 1  | 
|  [Autorización personalizada con una función AWS Lambda](apigateway-use-lambda-authorizer.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) [Sí](apigateway-use-lambda-authorizer.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) [Sí](http-api-lambda-authorizer.md)  | 
|  [Token web JSON (JWT)](http-api-jwt-authorizer.md) 2  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/negative_icon.svg) No  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) Sí  | 

1Puede utilizar Amazon Cognito con un [autorizador de JWT](http-api-jwt-authorizer.md).

2Puede utilizar un [autorizador de Lambda](apigateway-use-lambda-authorizer.md) para validar JWT para las API de REST.

## Administración de API
<a name="http-api-vs-rest.differences.management"></a>

Elija las API de REST si necesita capacidades de administración de API, como claves de API y limitación de velocidad por cliente. Para obtener más información, consulte [Distribución de sus API de REST a los clientes en API Gateway](rest-api-distribute.md), [Nombre de dominio personalizado para las API de REST públicas en API Gateway](how-to-custom-domains.md) y [Nombres de dominio personalizados para las API de HTTP en API Gateway](http-api-custom-domain-names.md).


| Características | API de REST | API HTTP | 
| --- | --- | --- | 
|  [Dominios personalizados](how-to-custom-domains.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) [Sí](how-to-custom-domains.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) [Sí](http-api-custom-domain-names.md)  | 
|  [Claves de API](api-gateway-api-usage-plans.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) Sí  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/negative_icon.svg) No  | 
|  [Limitación de velocidad por cliente](api-gateway-request-throttling.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) Sí  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/negative_icon.svg) No  | 
|  [Limitación de uso por cliente](api-gateway-api-usage-plans.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) Sí  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/negative_icon.svg) No  | 
|  [Portal para desarrolladores](apigateway-portals.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) Sí  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/negative_icon.svg) No  | 

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

A medida que se desarrolla la API de API Gateway, se decide sobre una serie de características de la API. Estas características dependen del uso de la API. Para obtener más información, consulte [Desarrollo de las API de REST en API Gateway](rest-api-develop.md) y [Desarrollo de las API HTTP en API Gateway](http-api-develop.md).


| Características | API de REST | API HTTP | 
| --- | --- | --- | 
|  [Configuración de CORS](how-to-cors.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) [Sí](how-to-cors.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) [Sí](http-api-cors.md)  | 
|  [Invocaciones de prueba](how-to-test-method.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) Sí  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/negative_icon.svg) No  | 
|  [Almacenamiento en caché](api-gateway-caching.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) Sí  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/negative_icon.svg) No  | 
|  [Implementaciones controladas por el usuario](how-to-deploy-api.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) [Sí](how-to-deploy-api.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) [Sí](http-api-stages.md)  | 
|  [Implementaciones automáticas](http-api-stages.md)  | ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/negative_icon.svg) No  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) Sí  | 
|  [Respuestas de gateway personalizadas](api-gateway-gatewayResponse-definition.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) Sí  | ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/negative_icon.svg) No  | 
|  [Implementación de la versión de valor controlado](canary-release.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) Sí  | ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/negative_icon.svg) No  | 
|  [Validación de solicitudes](api-gateway-method-request-validation.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) Sí  | ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/negative_icon.svg) No  | 
|  [Transformación de los parámetros de solicitud](rest-api-data-transformations.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) [Sí](rest-api-data-transformations.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) [Sí](http-api-parameter-mapping.md)  | 
|  [Transformación del cuerpo de la solicitud](rest-api-data-transformations.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) Sí  | ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/negative_icon.svg) No  | 

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

API Gateway admite varias opciones para registrar solicitudes de API y supervisar las API. Para obtener más información, consulte [Supervisión de las API de REST en API Gateway](rest-api-monitor.md) y [Supervisión de las API de HTTP en API Gateway](http-api-monitor.md).


| Característica | API de REST | API HTTP | 
| --- | --- | --- | 
|  [Métricas de Amazon CloudWatch](monitoring-cloudwatch.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) [Sí](monitoring-cloudwatch.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) [Sí](http-api-metrics.md)  | 
|  [Registros de acceso a Amazon CloudWatch Logs](set-up-logging.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) [Sí](set-up-logging.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) [Sí](http-api-logging.md)  | 
|  [Registros de acceso a Amazon Data Firehose](apigateway-logging-to-kinesis.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) Sí  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/negative_icon.svg) No  | 
|  [Registros de ejecución](set-up-logging.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) Sí  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/negative_icon.svg) No  | 
|  [AWS X-Ray Rastreo de](apigateway-xray.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) Sí  | ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/negative_icon.svg) No  | 

## Integraciones
<a name="http-api-vs-rest.differences.integrations"></a>

Las integraciones conectan la API de API Gateway a los recursos de backend. Para obtener más información, consulte [Integraciones para las API de REST en API Gateway](how-to-integration-settings.md) y [Creación de integraciones para las API de HTTP en API Gateway](http-api-develop-integrations.md).


| Característica | API de REST | API HTTP | 
| --- | --- | --- | 
|  [Puntos de conexión HTTP públicos](setup-http-integrations.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) [Sí](setup-http-integrations.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) [Sí](http-api-develop-integrations-http.md)  | 
|  [AWS Servicios de](api-gateway-api-integration-types.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) [Sí](api-gateway-api-integration-types.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) [Sí](http-api-develop-integrations-aws-services.md)  | 
|  [AWS Lambda functions](set-up-lambda-integrations.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) [Sí](set-up-lambda-integrations.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) [Sí](http-api-develop-integrations-lambda.md)  | 
|  [Integraciones privadas con equilibradores de carga de red](set-up-private-integration.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) [Sí](set-up-private-integration.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) [Sí](http-api-develop-integrations-private.md)  | 
|  [Integraciones privadas con equilibradores de carga de aplicaciones](http-api-develop-integrations-private.md)  | ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) [Sí](set-up-private-integration.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) Sí  | 
|  [Integraciones privadas con AWS Cloud Map](http-api-develop-integrations-private.md)  | ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/negative_icon.svg) No   |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) Sí  | 
|  [Integraciones simuladas](how-to-mock-integration.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) Sí  | ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/negative_icon.svg) No  | 
|  [Transmisión de respuestas](response-transfer-mode.md)  |  ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/success_icon.svg) Sí  | ![\[alt text not found\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/negative_icon.svg) No  | 

# Introducción a la consola de la API de REST
<a name="getting-started-rest-new-console"></a>

En este ejercicio de introducción, debe crear una API de REST sin servidor con la consola de API de REST de API Gateway. Las API sin servidor permiten centrarse en las aplicaciones, en lugar de dedicar el tiempo a aprovisionar y administrar servidores. Se debe completar este ejercicio en menos de 20 minutos y se debe realizar dentro del [nivel gratuito de AWS](https://aws.amazon.com/free/).

En primer lugar, crea una función de Lambda con la consola de Lambda. A continuación, debe crear una API de REST mediante la consola de API de REST de la API Gateway. A continuación, se crea un método de API y se integra con una función de Lambda mediante una integración de proxy de Lambda. Por último, debe implementar e invocar la API.

Cuando invoca la API de REST, API Gateway enruta la solicitud a la función de Lambda. Lambda ejecuta la función y devuelve una respuesta a API Gateway. API Gateway, a continuación, le devuelve una respuesta.

![\[Información general de la API de REST creada en este tutorial.\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/getting-started-overview-rest.png)


Para completar este ejercicio, necesita una Cuenta de AWS y un usuario de AWS Identity and Access Management (IAM) con acceso a la consola. Para obtener más información, consulte [Configuración para usar API Gateway](setting-up.md).

**Topics**
+ [Paso 1: Crear una función Lambda](#getting-started-rest-new-console-create-function)
+ [Paso 2: Crear una API de REST](#getting-started-rest-new-console-create-api)
+ [Paso 3: Crear una integración de proxy de Lambda](#getting-started-rest-new-console-create-integration)
+ [Paso 4: Implementar la API](#getting-started-rest-new-console-deploy)
+ [Paso 5: Invocar la API](#getting-started-rest-new-console-invoke-api)
+ [(Opcional) Paso 6: limpiar](#getting-started-cleanup-rest)

## Paso 1: Crear una función Lambda
<a name="getting-started-rest-new-console-create-function"></a>

Usa una función de Lambda para el backend de su API. Lambda ejecuta su código solo cuando es necesario y escala de manera automática, desde unas pocas solicitudes por día hasta miles por segundo.

Para este ejercicio, debe usar la función Node.js predeterminada en la consola de Lambda.

**Cómo crear una función de Lambda**

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

1. Elija **Create function (Crear función)**.

1. En **Basic information (Información básica)**, para **Function name (Nombre de función)**, escriba **my-function**.

1. Para todas las demás opciones, utilice la configuración predeterminada.

1. Seleccione **Creación de función**.

El código predeterminado de la función de Lambda debe ser similar al siguiente:

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

Puede modificar la función de Lambda para este ejercicio, siempre y cuando la respuesta de la función se alinee con el [formato que requiere API Gateway](set-up-lambda-proxy-integrations.md#api-gateway-simple-proxy-for-lambda-output-format).

Sustituya el cuerpo de respuesta predeterminado (`Hello from Lambda!`) por `The API Gateway REST API console is great!`. Al invocar la función de ejemplo, devuelve una respuesta `200` a los clientes, junto con la respuesta actualizada.

## Paso 2: Crear una API de REST
<a name="getting-started-rest-new-console-create-api"></a>

A continuación, debe crear una API de REST con un recurso raíz (`/`).

**Para crear una API de REST**

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

1. Realice una de las siguientes acciones:
   + Para crear la primera API, para **API de REST**, elija **Crear**.
   + Si ha creado una API antes, elija **Crear API** y, a continuación, elija **Crear** para **API de REST**.

1.  En **API name (Nombre de la API)**, escriba**my-rest-api**.

1. (Opcional) En **Description (Descripción)**, introduzca una descripción.

1. Mantenga **Tipo de punto de conexión de la API** establecido en **Regional**.

1. En **Tipo de dirección IP**, seleccione **IPv4**.

1. Seleccione **Crear API**.

## Paso 3: Crear una integración de proxy de Lambda
<a name="getting-started-rest-new-console-create-integration"></a>

A continuación, debe crear un método de API para la API de REST en el recurso raíz (`/`) e integrar el método con la función de Lambda mediante una integración de proxy. En una integración de proxy de Lambda, API Gateway pasa la solicitud entrante del cliente directamente a la función de Lambda.

**Para crear una integración de proxy de Lambda**

1. Seleccione el recurso `/` y, a continuación, elija **Crear método**.

1. En **Tipo de método**, seleccione `ANY`.

1. En **Tipo de integración**, seleccione **Lambda**.

1. Active **Integración de proxy de Lambda**.

1. En **Función de Lambda**, ingrese **my-function** y, continuación, seleccione la función de Lambda.

1. Elija **Crear método**.

## Paso 4: Implementar la API
<a name="getting-started-rest-new-console-deploy"></a>

Después, debe crear una implementación de la API y asociarla con una etapa.

**Para implementar su API**

1. Elija **Implementar API**.

1. En **Etapa**, seleccione **Nueva etapa**.

1. En **Stage name (Nombre de etapa)**, escriba **Prod**.

1. (Opcional) En **Description (Descripción)**, introduzca una descripción.

1. Elija **Implementar**.

Ahora los clientes pueden llamar a la API. Para probar la API antes de implementarla, puede elegir, si lo desea, el método **ANY**, ir a la pestaña **Probar** y, a continuación, elegir **Probar**.

## Paso 5: Invocar la API
<a name="getting-started-rest-new-console-invoke-api"></a>

**Para invocar la API**

1. En el panel de navegación principal, elija **Etapa**.

1. En **Detalles de la etapa**, elija el icono de copia para copiar la URL de invocación de la API.  
![\[Después de crear la API de REST, la consola muestra la URL de invocación de la API.\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/getting-started-rest-invoke-url.png)

1. Ingrese la URL de invocación en un navegador web. 

   La URL completa debería ser `https://abcd123.execute-api.us-east-2.amazonaws.com/Prod`. 

   Su navegador envía una `GET` solicitud a la API.

1. Verifique la respuesta de la API. Debería ver el texto `"The API Gateway REST API console is great!"` en el navegador.

## (Opcional) Paso 6: limpiar
<a name="getting-started-cleanup-rest"></a>

Para evitar acumular costos innecesarios en la Cuenta de AWS, elimine los recursos creados como parte de este ejercicio. Los siguientes pasos eliminan la API de REST, la función de Lambda y los recursos asociados.

**Para eliminar la API de REST**

1. En el panel **Recursos**, elija **Acciones de la API** y **Eliminar API**.

1. En el cuadro de diálogo **Eliminar API**, escriba **confirmar** y después elija **Eliminar**.

**Para eliminar la función de Lambda**

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

1. En la página **Funciones**, seleccione la función. Elija **Acciones**, **Eliminar**.

1. En el cuadro de diálogo **Eliminar 1 función**, escriba **delete** y, a continuación, elija **Eliminar**.

**Para eliminar el grupo de registro de la función de Lambda**

1. Abra la [página Log grouls (Grupos de registro)](https://console.aws.amazon.com/cloudwatch/home#logs:) de la consola Amazon CloudWatch.

1. En la página **Grupos de registro**, seleccione el grupo de registro de la función (`/aws/lambda/my-function`). A continuación, en **Acciones**, elija **Eliminar grupos de registros**.

1. En el cuadro de diálogo **Eliminar grupos de registros**, elija **Eliminar**.

**Para eliminar el rol de ejecución de una función de Lambda**

1. Abra la [página Roles](https://console.aws.amazon.com/iam/home?#/roles) en la consola de IAM.

1. (Opcional) En la página **Roles**, en el cuadro de búsqueda, ingrese **my-function**.

1. Seleccione el rol de la función (por ejemplo, `my-function-31exxmpl`) y, a continuación, elija **Eliminar**.

1. En el cuadro de diálogo **¿Eliminar `my-function-31exxmpl`?**, escriba el nombre del rol y, a continuación, elija **Eliminar**.

**sugerencia**  
Puede automatizar la creación y la limpieza de los recursos de AWS mediante el uso de AWS CloudFormation o AWS Serverless Application Model (AWS SAM). Para ver algunas plantillas de ejemplo de CloudFormation, consulte las [plantillas de ejemplo de API Gateway](https://github.com/awsdocs/amazon-api-gateway-developer-guide/tree/main/cloudformation-templates) en el repositorio GitHub de **awsdocs**.