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.
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
.
Temas
Creación de una API con integración de proxy HTTP con la consola de API Gateway
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, 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
Inicie sesión en la consola de API Gateway en https://console.aws.amazon.com/apigateway
. -
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).
En API name (Nombre de la API), escriba
HTTPProxyAPI
.(Opcional) En Description (Descripción), introduzca una descripción.
Mantenga Tipo de punto de conexión de la API establecido en Regional.
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 /{proxy+}
Elija la API.
En el panel de navegación principal, elija Recursos.
Elija Crear recurso.
Active Recurso proxy.
Mantenga Ruta del recurso en
/
.En Nombre del recurso, escriba
{proxy+}
.Mantenga desactivado CORS (uso compartido de recursos entre orígenes).
Elija Crear recurso.
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
Elija el recurso /{proxy+}.
Elija el método ANY.
Bajo el símbolo de advertencia, seleccione Editar integración. No puede implementar una API que tenga un método sin una integración.
En Tipo de integración, seleccione HTTP.
Active Integración de proxy HTTP.
En Método HTTP, seleccione ANY.
En URL del punto de conexión, introduzca
http://petstore-demo-endpoint.execute-api.com/{proxy}
.Seleccione Guardar.
Probar una API con la integración de proxy HTTP
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
Seleccione la pestaña Pruebas. Puede que tenga que elegir el botón de flecha hacia la derecha para mostrar la pestaña.
En Tipo de método, seleccione
GET
.En Ruta, debajo de proxy, introduzca
petstore/pets
.En Cadenas de consulta, escriba
type=fish
.Seleccione Probar.
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 respuesta404
con un mensaje de errorCannot GET /petstore
. Esto se debe a que el backend no es compatible con la operación especificada. Si llama aGET /petstore/pets/1
, obtendrá una respuesta200 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
Elija Deploy API (Implementar API).
En Etapa, seleccione Nueva etapa.
En Stage name (Nombre de etapa), escriba
test
.(Opcional) En Description (Descripción), introduzca una descripción.
Elija Implementar.
Ahora los clientes pueden llamar a la API.
Para invocar la API
Inicie sesión en la consola de API Gateway en https://console.aws.amazon.com/apigateway
. Elija la API.
-
En el panel de navegación principal, elija Etapa.
-
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=fishSu navegador envía una
GET
solicitud a la API. -
El resultado debe ser el mismo que el que se devuelve cuando utiliza Prueba desde la consola de API Gateway.