

# Tutorial: Creación de una API de REST con integración de proxy HTTP
<a name="api-gateway-create-api-as-simple-proxy-for-http"></a>

La integración de proxy HTTP es un mecanismo sencillo, potente y versátil para desarrollar una API que permita que una aplicación web obtenga acceso a múltiples recursos o características del punto de enlace HTTP integrado, por ejemplo, el sitio web completo, con una configuración simplificada de un único método de API. En la integración de proxy HTTP, API Gateway transmite la solicitud de método enviada por el cliente al backend. Los datos de la solicitud transmitida incluyen los encabezados de solicitud, los parámetros de cadena de consulta, las variables de ruta de la URL y la carga. El punto de enlace de HTTP del backend o del servidor web analiza los datos de la solicitud entrante para determinar la respuesta que devuelve. La integración de proxy HTTP permite que el cliente y el backend interactúen directamente sin intervención de API Gateway después de haber configurado el método de API, salvo cuando se producen problemas conocidos, como caracteres no admitidos, que se indican en [Notas importantes de Amazon API Gateway](api-gateway-known-issues.md).

Con el amplio recurso de proxy `{proxy+}` y el verbo catch-all `ANY` para el método HTTP, puede utilizar una integración de proxy HTTP para crear una API de un único método de API. El método expone el conjunto completo de recursos y operaciones HTTP de acceso público de un sitio web. Cuando el servidor web del backend abre más recursos para acceso público, el cliente puede utilizar estos nuevos recursos con la misma configuración de API. Para habilitar esto, el desarrollador del sitio web debe comunicar con claridad al desarrollador del cliente cuáles son los nuevos recursos y cuáles son las operaciones aplicables para cada uno de ellos.



Como una introducción rápida, el siguiente tutorial demuestra la integración de proxy HTTP. En el tutorial creamos una API que utiliza la consola de API Gateway para integrarse con el sitio web PetStore mediante un recurso de proxy genérico `{proxy+}` y creamos el marcador de posición del método HTTP de `ANY`. 

**Topics**
+ [Creación de una API con integración de proxy HTTP con la consola de API Gateway](#api-gateway-create-api-as-simple-proxy-for-http-build)
+ [Probar una API con la integración de proxy HTTP](#api-gateway-create-api-as-simple-proxy-for-http-test)

## Creación de una API con integración de proxy HTTP con la consola de API Gateway
<a name="api-gateway-create-api-as-simple-proxy-for-http-build"></a>

 El siguiente procedimiento le guiará por los pasos para crear y probar una API con un recurso de proxy para un backend HTTP mediante la consola de API Gateway. El backend HTTP es el `PetStore` sitio web (`http://petstore-demo-endpoint.execute-api.com/petstore/pets`) de [Tutorial: Creación de una API de REST con integración no de proxy HTTP](api-gateway-create-api-step-by-step.md), en el que las capturas de pantalla se utilizan como ayudas visuales para ilustrar los elementos de IU de API Gateway. Si es la primera vez que utiliza la consola de API Gateway para crear una API, le recomendamos seguir esa sección en primer lugar. 

**Creación de una API**

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

1. Si es la primera vez que utiliza API Gateway, verá una página en la que aparecen las características del servicio. En **REST API**, elija **Build (Compilación)**. Cuando aparezca el menú emergente **Create Example API (Crear API de ejemplo)**, elija **OK (Aceptar)**.

   Si esta no es la primera vez que utiliza API Gateway, elija **Create API (Crear API)**. En **REST API**, elija **Build (Compilación)**.

1.  En **API name (Nombre de la API)**, escriba**HTTPProxyAPI**.

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**.

En este paso, creará una ruta de recursos de proxy de `{proxy+}`. Este es el marcador de posición de cualquier punto de conexión del backend bajo `http://petstore-demo-endpoint.execute-api.com/`. Por ejemplo, puede ser `petstore`, `petstore/pets` y `petstore/pets/{petId}`. API Gateway crea el método `ANY` al crear el recurso `{proxy+}` y actúa como un marcador de posición para cualquiera de los verbos HTTP admitidos en tiempo de ejecución.

**Para crear un recurso **/\$1proxy\$1\$1****

1. Elija la API. 

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

1. Elija **Crear recurso**.

1. Active **Recurso proxy**.

1. Mantenga **Ruta del recurso** en `/`.

1. En **Nombre del recurso**, escriba **\$1proxy\$1\$1**.

1. Mantenga desactivado **CORS (uso compartido de recursos entre orígenes)**.

1. Elija **Crear recurso**.  
![\[Crear un recurso secundario.\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/api-gateway-simple-proxy-create-proxy-resource-new-console.png)

En este paso, integrará el método `ANY` con un punto de conexión HTTP de backend mediante una integración de proxy. En la integración de proxy, API Gateway transmite la solicitud de método enviada por el cliente al backend sin la intervención de API Gateway.

**Para crear un método `ANY`**

1. Elija el recurso **/\$1proxy\$1\$1**.

1. Elija el método **ANY**.

1. Bajo el símbolo de advertencia, seleccione **Editar integración**. No puede implementar una API que tenga un método sin una integración.

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

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

1. En **Método HTTP**, seleccione **ANY**.

1. En **URL del punto de conexión**, introduzca **http://petstore-demo-endpoint.execute-api.com/\$1proxy\$1**.

1. Seleccione **Save**.

## Probar una API con la integración de proxy HTTP
<a name="api-gateway-create-api-as-simple-proxy-for-http-test"></a>

 El éxito de una solicitud de cliente específica dependerá de lo siguiente: 
+  Si el backend ha puesto a disposición el punto de enlace del backend correspondiente y, si lo ha hecho, si ha concedido los permisos de acceso requeridos. 
+ Si el cliente proporciona la entrada correcta.

Por ejemplo, la API de PetStore aquí utilizada no expone el recurso `/petstore`. Por lo tanto, obtendrá una respuesta `404 Resource Not Found` que contiene el mensaje de error de `Cannot GET /petstore`. 

Además, el cliente debe tener la posibilidad de gestionar el formato de salida del backend para analizar los resultados correctamente. API Gateway no realiza mediaciones para facilitar las interacciones entre el cliente y el backend. 

**Para probar una API integrada con el sitio web PetStore utilizando la integración de proxy HTTP a través del recurso de proxy**

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. En **Tipo de método**, seleccione `GET`.

1. En **Ruta**, debajo de **proxy**, introduzca **petstore/pets**.

1. En **Cadenas de consulta**, escriba **type=fish**.

1. Seleccione **Probar**.

     
![\[Utilice la característica de prueba para probar un método.\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/api-gateway-simple-proxy-petstore-call-proxy-resource-new-console.png)

   Como que el sitio web del backend admite la solicitud `GET /petstore/pets?type=fish`, devuelve una respuesta correcta similar a la siguiente:

   ```
   [
     {
       "id": 1,
       "type": "fish",
       "price": 249.99
     },
     {
       "id": 2,
       "type": "fish",
       "price": 124.99
     },
     {
       "id": 3,
       "type": "fish",
       "price": 0.99
     }
   ]
   ```

   Si intenta llamar a `GET /petstore`, obtendrá una respuesta `404` con un mensaje de error `Cannot GET /petstore`. Esto se debe a que el backend no es compatible con la operación especificada. Si llama a `GET /petstore/pets/1`, obtendrá una respuesta `200 OK` con la siguiente carga, ya que la solicitud admite el sitio web PetStore.

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

También puede utilizar un navegador para probar la API. Implemente su API y asóciela a una etapa para crear la URL de invocación de su API.

**Para implementar su API**

1. Elija **Implementar API**.

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

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

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

1. Elija **Implementar**.

Ahora los clientes pueden llamar a la API. 

**Para invocar la API**

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 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.

   Introduzca la URL de invocación de la API en un navegador web. 

   La URL completa debería ser `https://abcdef123.execute-api.us-east-2.amazonaws.com/test/petstore/pets?type=fish`. 

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

1. El resultado debe ser el mismo que el que se devuelve cuando utiliza **Prueba** desde la consola de API Gateway.