Tutorial: Desarrollo de una API de REST con integración HTTP no de proxy - Amazon API Gateway

Tutorial: Desarrollo de una API de REST con integración HTTP no de proxy

En este tutorial creará una API desde cero utilizando la consola de Amazon API Gateway. La consola se puede considerar como un estudio de diseño de la API y se puede utilizar para definir el ámbito de las características de API, para probar su comportamiento, para crear la API y para implementar la API en etapas.

Crear una API con integración de HTTP personalizada

Esta sección le guía por los pasos para crear recursos, exponer métodos en un recurso, configurar un método para lograr los comportamientos de la API deseados y probar e implementar la API.

En este paso, se crea una API vacía. En los siguientes pasos, debe crear recursos y métodos para conectar la API al punto de conexión http://petstore-demo-endpoint.execute-api.com/petstore/pets mediante una integración HTTP sin proxy.

Creación de una API
  1. Inicie sesión en la consola de API Gateway en https://console.aws.amazon.com/apigateway.

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

  3. En API name (Nombre de la API), escribaHTTPNonProxyAPI.

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

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

  6. Seleccione Crear API.

El árbol Resources (Recursos) muestra el recurso raíz (/) sin métodos. En este ejercicio, vamos a desarrollar la API con la integración HTTP personalizada del sitio web de PetStore (http://petstore-demo-endpoint.execute-api.com/petstore/pets). Con fines ilustrativos, crearemos un recurso /pets como un elemento secundario de la raíz y expondremos un método GET en este recurso para que un cliente pueda recuperar una lista de los elementos Pets disponibles en el sitio web de PetStore.

Para crear un recurso /pets
  1. Seleccione el recurso / y, a continuación, elija Crear recurso.

  2. Mantenga Recurso proxy desactivado.

  3. Mantenga Ruta del recurso en /.

  4. En Nombre del recurso, escriba pets.

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

  6. Elija Crear recurso.

En este paso, se crea un método GET en el recurso /pets. El método GET está integrado con el sitio web http://petstore-demo-endpoint.execute-api.com/petstore/pets. Otras opciones para un método de API incluyen las siguientes:

  • POST, que se utiliza principalmente para crear recursos secundarios.

  • PUT, que se utiliza principalmente para actualizar los recursos existentes (y, aunque no es recomendable, puede utilizarse para crear recursos secundarios).

  • DELETE, que se utiliza para eliminar recursos.

  • PATCH, que se utiliza para actualizar los recursos.

  • HEAD, que se utiliza principalmente en escenarios de pruebas. Es igual que GET, pero no devuelve la representación de los recursos.

  • OPTIONS, que pueden usar los intermediarios para obtener la información sobre las opciones de comunicación disponibles para el servicio de destino.

En el caso del HTTP method (Método HTTP) de la solicitud de integración, debe elegir uno de los métodos compatibles con el backend. Para HTTP o Mock integration, es razonable que la solicitud del método y la solicitud de integración usen el mismo verbo HTTP. Para otros tipos de integración, la solicitud del método usará probablemente un verbo HTTP diferente del de la solicitud de integración. Por ejemplo, para llamar a una función de Lambda, la solicitud de integración debe utilizar POST para invocar la función, mientras que la solicitud del método puede utilizar cualquier verbo HTTP en función de la lógica de la función de Lambda.

Para crear un método GET en el recurso /pets
  1. Seleccione el recurso /pets.

  2. Elija Crear método.

  3. En Tipo de método, seleccione GET.

  4. En Tipo de integración, seleccione Integración HTTP.

  5. Mantenga desactivada Integración de proxy HTTP.

  6. En Método HTTP, seleccione GET.

  7. En URL del punto de conexión, introduzca http://petstore-demo-endpoint.execute-api.com/petstore/pets.

    El sitio web de PetStore le permite recuperar una lista de elementos Pet por tipo de mascota, por ejemplo, "Perro" o "Gato", en una determinada página.

  8. En Tratamiento de contenido, seleccione Acceso directo.

  9. Elija Parámetros de cadenas de consulta de URL.

    El sitio web de PetStore utiliza los parámetros de cadena de consulta type y page para aceptar una entrada. Se agregan los parámetros de cadena de consulta a la solicitud del método y se asignan a los parámetros de cadena de consulta correspondientes de la solicitud de integración.

  10. Para agregar parámetros de cadena de consulta, haga lo siguiente:

    1. Elija Add query string (Añadir cadena de consulta).

    2. En Nombre, introduzca type.

    3. Mantenga desactivados Obligatorio y Almacenamiento en caché.

    Repita los pasos anteriores para crear una cadena de consulta adicional con el nombre page.

  11. Elija Crear método.

El cliente ahora puede proporcionar un tipo de mascota y un número de página como parámetros de cadena de consulta cuando envíe una solicitud. Estos parámetros de entrada deben mapearse a los parámetros de cadena de consulta de la integración para reenviar los valores de entrada a nuestro sitio web de PetStore en el backend.

Para mapear los parámetros de entrada a la solicitud de integración
  1. En la pestaña Solicitud de integración, en Configuración de la solicitud de integración, seleccione Editar.

  2. Elija Parámetros de cadenas de consulta de URL y luego haga lo siguiente:

    1. Seleccione Añadir parámetro de cadena de consulta.

    2. En Nombre, escriba type.

    3. En Mapeado de, introduzca method.request.querystring.type.

    4. Mantenga Almacenamiento en caché desactivado.

    5. Seleccione Añadir parámetro de cadena de consulta.

    6. En Nombre, escriba page.

    7. En Mapeado de, introduzca method.request.querystring.page.

    8. Mantenga Almacenamiento en caché desactivado.

  3. Seleccione Guardar.

Para probar el API
  1. Elija la pestaña Prueba. Puede que tenga que elegir el botón de flecha hacia la derecha para mostrar la pestaña.

  2. En Cadenas de consulta, escriba type=Dog&page=2.

  3. Seleccione Probar.

    El resultado es similar al siguiente:

    Resultado del método Test-invoke GET en pets

    Ahora que la prueba se ha realizado correctamente, podemos implementar la API para ponerla a disposición del público en general.

  4. Elija Deploy API (Implementar API).

  5. En Etapa, seleccione Nueva etapa.

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

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

  8. Elija Implementar.

  9. (Opcional) En Detalles de la etapa, para URL de invocación, puede elegir el icono de copia para copiar la URL de invocación de su API. Puede utilizar esto con herramientas como Postman y cURL para probar la API.

Si utiliza un SDK para crear un cliente, puede llamar a los métodos expuestos por el SDK para firmar la solicitud. Para obtener más información, consulte los AWSSDK que desee.

nota

Cuando se realicen cambios en la API, deberá volver a implementar la API para que las características nuevas o actualizadas estén disponibles antes de volver a invocar la URL de la solicitud.

(Opcional) Parámetros de la solicitud de mapeo

Asignación de parámetros de solicitudes para una API de API Gateway

En este tutorial, se enseña a crear un parámetro de ruta {petId} en la URL de solicitud de método de la API para especificar un ID de elemento, mapearlo al parámetro de ruta {id} de la URL de la solicitud de integración y enviar la solicitud al punto de conexión HTTP

nota

Si introduce una letra con las mayúsculas o minúsculas incorrectas (por ejemplo, una letra minúscula en lugar de una mayúscula), se producirán errores más adelante en el tutorial.

Paso 1: Crear recursos

En este paso, se crea un recurso con un parámetro de ruta {petId}.

Para crear el recurso {petID}
  1. Seleccione el recurso /pets y, a continuación, elija Crear recurso.

  2. Mantenga Recurso proxy desactivado.

  3. En Ruta de recurso, seleccione /pets/.

  4. En Nombre del recurso, escriba {petId}.

    Utilice llaves ({ }) alrededor de petId para que aparezca /pets/{petId}.

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

  6. Elija Crear recurso.

Paso 2: Crear y probar los métodos

En este paso, se crea un método GET con un parámetro de ruta {petId}.

Para configurar el método GET
  1. Seleccione el recurso /{petId} y, a continuación, elija Crear método.

  2. En Tipo de método, seleccione GET.

  3. En Tipo de integración, seleccione Integración HTTP.

  4. Mantenga desactivada Integración de proxy HTTP.

  5. En Método HTTP, seleccione GET.

  6. En URL del punto de conexión, introduzca http://petstore-demo-endpoint.execute-api.com/petstore/pets/{id}

  7. En Tratamiento de contenido, seleccione Acceso directo.

  8. Mantenga activado Tiempo de espera predeterminado.

  9. Elija Crear método.

Ahora mapee el parámetro de ruta {petId} al parámetro de ruta {id} en el punto de conexión HTTP.

Para mapear el parámetro de ruta {petId}
  1. En la pestaña Solicitud de integración, en Configuración de la solicitud de integración, seleccione Editar.

  2. Elija los Parámetros de la ruta URL.

  3. API Gateway crea un parámetro de ruta para la solicitud de integración denominado petId. Esto no funciona para el backend. El punto de conexión HTTP utiliza {id} como parámetro de ruta. Cambie el nombre de petId por id.

    Esto asigna el parámetro de ruta de la solicitud del método de petId al parámetro de ruta de la solicitud de integración de id.

  4. Seleccione Guardar.

Ahora pruebe el método.

Para probar el método
  1. Elija la pestaña Prueba. Puede que tenga que elegir el botón de flecha hacia la derecha para mostrar la pestaña.

  2. En Ruta, en petId, introduzca 4.

  3. Seleccione Test (Probar).

    Si todo sale bien, en Cuerpo de la respuesta se mostrará lo siguiente:

    { "id": 4, "type": "bird", "price": 999.99 }

Paso 3: Implementar la API

En este paso, implementará la API para que pueda empezar a llamarla fuera de la consola de API Gateway.

Para implementar la API
  1. Elija Deploy API (Implementar API).

  2. En Etapa, seleccione Prod.

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

  4. Elija Deploy (Implementar).

Paso 4: Probar la API

En este paso, saldrá de la consola de API Gateway y utilizará la API para obtener acceso al punto de enlace HTTP.

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

  2. En Detalles de la etapa, elija el icono de copia para copiar la URL de invocación de la API.

    Debe tener un aspecto similar al siguiente:

    https://my-api-id.execute-api.region-id.amazonaws.com/prod
  3. Introduzca esta URL en el cuadro de dirección de una nueva pestaña del navegador y añada /pets/4 a la URL antes de enviar su solicitud.

  4. El navegador devolverá lo siguiente:

    { "id": 4, "type": "bird", "price": 999.99 }

Siguientes pasos

Puede personalizar aún más su API activando la validación de solicitudes, transformando los datos o creando respuestas de puerta de enlace personalizadas.

Para explorar más formas de personalizar su API, consulte los siguientes tutoriales: