

# Tutorial: Crear una API de REST importando un ejemplo
<a name="api-gateway-create-api-from-example"></a>

Puede utilizar la consola de Amazon API Gateway para crear y probar una API REST sencilla con integración HTTP para un sitio web PetStore. La definición de la API está preconfigurada como un archivo de OpenAPI 2.0. Después de cargar la definición de API en API Gateway, puede utilizar la consola de API Gateway para examinar la estructura básica de API o simplemente implementar y probar la API. 

 La API de ejemplo de PetStore admite los siguientes métodos para que un cliente obtenga acceso al sitio web de backend HTTP de `http://petstore-demo-endpoint.execute-api.com/petstore/pets`. 

**nota**  
En este tutorial se utiliza un punto de conexión HTTP como ejemplo. Cuando cree sus propias API, le recomendamos que utilice puntos de conexión HTTPS para las integraciones HTTP.
+ `GET /`: para leer el acceso del recurso raíz de la API que no se integra con ningún punto de enlace de backend. API Gateway responde con información general del sitio web PetStore. Este es un ejemplo del tipo de integración `MOCK`.
+ `GET /pets`: para obtener acceso de lectura al recurso `/pets` de la API que se integra con el recurso `/pets` de backend asignado. El backend devuelve una página de mascotas disponibles en PetStore. Este es un ejemplo del tipo de integración `HTTP`. La URL del punto de enlace de integración es `http://petstore-demo-endpoint.execute-api.com/petstore/pets`.
+ `POST /pets`: para obtener acceso de escritura al recurso `/pets` de la API que se integra con el recurso `/petstore/pets` de backend. Tras recibir una solicitud correcta, el backend agrega la mascota especificada a PetStore y devuelve el resultado al autor de la llamada. La integración también es `HTTP`.
+ `GET /pets/{petId}`: para obtener acceso de lectura a una mascota identificada por un valor `petId` tal como se especifica en una ruta variable de la URL de solicitud de entrada. Este método también tiene el tipo de integración `HTTP`. El backend devuelve la mascota especificada que se encuentra en PetStore. La URL del punto de enlace HTTP del backend es `http://petstore-demo-endpoint.execute-api.com/petstore/pets/n`, donde `n` es un entero como identificador de la mascota consultada.

 La API admite el acceso a CORS a través de los métodos `OPTIONS` del tipo de integración `MOCK`. API Gateway devuelve los encabezados solicitados que admiten el acceso a CORS. 

El siguiente procedimiento le guiará por los pasos para crear y probar una API a partir de un ejemplo mediante la consola de API Gateway.

**Para importar, desarrollar y probar la API de ejemplo**

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 **Crear API de REST**, elija **API de ejemplo** y, a continuación, elija **Crear API** para crear la API de ejemplo. 

      
![\[API de REST de ejemplo en la consola de API Gateway.\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/api-gateway-create-api-by-importing-example-new-console.png)

    Puede desplazarse por la definición de OpenAPI para obtener información detallada sobre esta API de ejemplo antes de elegir **Crear API**. 

1. En el panel de navegación principal, elija **Recursos**. La API recién creada se muestra de la siguiente forma:

      
![\[La API de ejemplo después de importarla a la consola de API Gateway.\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/api-gateway-create-api-by-importing-example-result-new-console.png)

    El panel **Resources (Recursos)** muestra la estructura de la API creada como un árbol de nodos. Los métodos de API definidos en cada recurso son los extremos del árbol. Cuando se selecciona un recurso, todos sus métodos se muestran en el panel **Métodos** situado a la derecha. Junto a cada método se muestran el tipo de método, el tipo de integración, el tipo de autorización y el requisito de clave de API. 

1.  Para ver los detalles de un método, para modificar su configuración o para probar la invocación del método, elija el nombre del método en la lista de métodos o en el árbol de recursos. A continuación, elegimos el `POST /pets` método como ejemplo: 

      
![\[El método POST /pets para la API de ejemplo en la consola de API Gateway.\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/api-gateway-create-api-by-importing-example-post-method-execution-new-console.png)

    El panel de **Ejecución de método** resultante presenta una vista lógica de la estructura y el comportamiento del método elegido (`POST /pets`).

   La **Solicitud de método** y la **Respuesta de método** representan la interfaz de la API con el frontend, y la **Solicitud de integración** y la **Respuesta de integración** representan la interfaz de la API con el backend.

    El cliente utiliza la API para obtener acceso a una característica del backend a través de **Solicitud de método**. API Gateway traduce la solicitud del cliente, si fuera necesario, a un formato aceptable por el backend en **Solicitud de integración** antes de reenviar la solicitud entrante al backend. La solicitud transformada se conoce como la solicitud de integración. Del mismo modo, el backend devuelve la respuesta a API Gateway en **Respuesta de integración**. A continuación, API Gateway la dirige a **Method Response (Respuesta de método)** antes de enviarla al cliente. De nuevo, si fuera necesario, API Gateway puede asignar los datos de la respuesta del backend a un formulario previsto por el cliente. 

    En el caso del método `POST` de recurso de API, la carga de la solicitud del método puede transmitirse a través de la solicitud de integración sin modificación si la carga de la solicitud de método está en el mismo formato que la carga de la solicitud de integración. 

   La solicitud del método `GET /` usa el tipo de integración `MOCK` y no está vinculada a ningún punto de enlace de backend real. La **Respuesta de integración** correspondiente está configurada para devolver una página HTML estática. Cuando se llama al método, API Gateway simplemente acepta la solicitud e inmediatamente devuelve la respuesta a la integración configurada al cliente a través de **Respuesta de método**. Puede utilizar la integración simulada para probar una API sin requerir un punto de enlace del backend. También puede utilizarla para servir una respuesta local generada partir de una plantilla de asignación de cuerpo de respuesta. 

   Como desarrollador de la API, puede controlar los comportamientos de las interacciones del frontend de la API mediante la configuración de la solicitud de método y una respuesta de método. Puede controlar los comportamientos de las interacciones del backend de la API mediante la configuración de la solicitud de integración y la respuesta de integración. Estos comportamientos implican asignaciones de datos entre un método y su integración correspondiente. Por el momento, nos centraremos en probar la API para proporcionar una experiencia de usuario completa. 

1.  Seleccione la pestaña **Pruebas**. Puede que tenga que elegir el botón de flecha hacia la derecha para mostrar la pestaña. 

1.  Por ejemplo, para probar el método `POST /pets`, escriba la siguiente carga **\$1"type": "dog","price": 249.99\$1** en el **Cuerpo de la solicitud** antes de elegir el botón **Pruebas**.

      
![\[Pruebe el método POST en la consola de API Gateway.\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/api-gateway-create-api-by-importing-example-post-method-test-new-console.png)

    La entrada especifica los atributos de la mascota que deseamos añadir a la lista de mascotas en el sitio web PetStore. 

1. El resultado es el siguiente:

      
![\[El resultado de la prueba del método POST en la consola de API Gateway.\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/api-gateway-create-api-by-importing-example-post-method-test-result-new-console.png)

    La entrada **Registros** de la salida muestra los cambios de estado de la solicitud del método a la solicitud de integración y de la respuesta de integración a la respuesta del método. Esto puede resultar útil para la resolución de errores de asignación que impidan que la solicitud se realice correctamente. En este ejemplo, la asignación no se aplica: la carga de la solicitud de método se transfiere a través de la solicitud integración al backend y, de forma parecida, la respuesta del backend se transfiere a través de la respuesta de integración al método de respuesta. 

    Para probar la API con un cliente distinto de la característica test-invoke-request de API Gateway, primero debe implementar la API en una etapa. 

1.  Elija **Implementar API** para implementar la API de ejemplo. 

      
![\[Utilice el botón de implementación para implementar la API, así los intermediarios de la API pueden invocar la API.\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/api-gateway-create-api-by-importing-example-deploy-api-new-console.png)

1. En **Etapa**, seleccione **Nueva etapa** y, a continuación, ingrese **test**.

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

1. Elija **Implementar**.

1.  En el panel **Etapas** resultante, en **Detalles de la etapa**, la **URL de invocación** muestra la dirección URL para invocar la solicitud del método `GET /` 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. Elija el icono de copiar para copiar la URL de invocación de la API y, a continuación, ingrese la URL de invocación de la API en un navegador web. Una respuesta correcta devuelve el resultado, generado a partir de la plantilla de asignación de la respuesta de integración. 

1.  En el panel de navegación **Stages** (Etapas), expanda la etapa **test** (prueba), seleccione **GET** en `/pets/{petId}` y, a continuación, copie el valor **Invoke URL** (URL de invocación) de `https://api-id.execute-api.region.amazonaws.com/test/pets/{petId}`. `{petId}` hace referencia a una variable de ruta. 

    Pegue el valor de **Invoke URL (URL de invocación)** (obtenido en el paso anterior) en la barra de direcciones de un navegador, sustituyendo `{petId}` por, por ejemplo, `1` y, a continuación, pulse Intro para enviar la solicitud. Debería devolverse una respuesta 200 OK con la siguiente carga JSON: 

   ```
   {
     "id": 1,
     "type": "dog",
     "price": 249.99
   }
   ```

    La invocación del método de la API tal como se muestra es posible porque su tipo **Authorization (Autorización)** está establecido en `NONE`. Si se ha utilizado la autorización de `AWS_IAM`, firmaría la solicitud con los protocolos [Signature Version 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/create-signed-request.html) (SigV4) o [Signature Version 4a](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html#how-sigv4a-works) (SigV4a). Para ver un ejemplo de una solicitud de este tipo, consulte [Tutorial: Creación de una API de REST con integración no de proxy HTTP](api-gateway-create-api-step-by-step.md). 