API Gateway de AWS. ¿Cómo crear una API REST?

Una de las grandes organizaciones responsables por la transformación digital que tanto se habla es Amazon con sus Web Services (AWS).  AWS innova anualmente para mejorar la experiencia digital de tus desarrolladores y la tuya también. Una de estas innovaciones es su API Gateway, como ya nos explicó Sergio durante este año.

Si no recuerdas qué es API Gateway, ni para qué sirve, te animo a aprender en los siguientes artículos:

Ahora que ya sabes que es API Gateway, me parece buena idea conocer un poco más sobre la solución API Gateway de AWS, y crear una API REST a través de este sistema innovador.

Estructura simple

La consola de Amazon API Gateway te permite crear y testear una API REST simple, con la integración de HTTP para un sitio web, sobre una tienda de mascotas (PetStore) de form fácil. Esta será la estructura y el ejemplo que utilizaremos en este artículo.

Para aprender a crear de forma rápida una API REST con API Gateway, el ejemplo de la API de PetStore cuenta ya con los métodos básicos que permiten a cualquier cliente acceder al backend del sitio web http://petstore-demo-endpoint.execute-api.com/petstore/pets.

Los métodos disponibles  son los siguientes:

  • GET para “/”, y acceder al recurso de raíz de la API
  • GET para “/pets”, para acceder al recurso “/pets” de la API, integrado con el recurso “/pets” del backend con el mismo nombre.
  • GET para “/pets/{petId}” con el objetivo de leer una sola mascota identificada con el valor de petId
  • POST para "/pets" para escribir al recurso de la API /pets que estará integrado con el recurso /petstore/pets del backend.

¿Cómo Importar, compilar y testear la API de ejemplo?

Lo primero que tienes que hacer es acceder a tu consola de API Gateway: https://console.aws.amazon.com/apigateway

Después, suponiendo que esta es la primera API en tu cuenta, debes buscar “REST API” - el que no es privado - y clicar en Crear.

Bloque para crear una API REST

Verás que AWS rellenará previamente el formulario de importación con una API Pet Store definida con Swagger 2.0., seleccionado también la opción “API ejemplo”.

El objetivo es ayudarte y guiarte, por tanto  - puedes leer la configuración si quieres - solo tienes que hacer scroll y clicar en Importar.

Playload de demostración

A partir de este momento ya tienes tu nueva API creada, y con sus Recursos. - ¿Fácil?

Si quieres, también puedes acceder a los Métodos disponibles por cada recurso. Lo único que tienes que hacer es seleccionar un recurso en el panel de la izquierda, y verás los métodos en el de la derecha. Verás los detalles del método a la derecha, y también podrás testar el método de invocación, o ajustarlo si es necesario.

POST - ejecución de método

La información que encontrarás en el panel “Ejecución de método” para POST también es fácil de entender para qué sirve: “Solicitud de método” y “Respuesta de método” son las interfaces de la API con algún cliente de frontend de la API, mientras que “Solicitud de integración” y “Respuesta de integración” son las interfaces de la API con el backend.

¿Cómo crear una entidad?

Amazon API Gateway te permite realizar tests y crear nuevas entidades - mascotas - con tu nueva API. Como ejemplo puedes introducir la siguiente carga útil:

{"type": "dog","price": 300.88}

En el “Cuerpo de Solicitud” que encontrarás en la pantalla que ves después de clicar en “Pruebas”:

Pantalla con el campo "Cuerpo de solicitud" para insertar la carga útil

Si no ha pasado nada raro, después de clicar en el botón azul “Pruebas”, verás el resultado con los Registros (logs) que te ayudarán a conocer los cambios de los estados desde la solicitud de método hasta la solicitud de integración. Si necesitas debugar, ¡esta es tu pantalla!

¿Puedo implementar (deploy)  la API?

Claro que sí. Para implementar tu API de Pet Store, debes clicar en el menú Acciones, y seleccionar la acción “Implementar la API”.

Menú acciones, con la acción de deploy (implementar) la API

En el lightbox “Implementar la API”, puedes seleccionar “Nueva Etapa” y en “Nombre de la fase”, el nombre de la fase que creas oportuno, por ejemplo test. Este nombre es obligatorio, pero además puedes añadir la “descripción de la etapa” y la “descripción de implementación”.

Lightbox con opciones para implementar la API

¡Clicas en “Implementación” y listo! Tu API está implementada, y en el panel editor de etapas puedes verla disponible en la URL de “invocar URL”.

Invocar URL - ruta

Si deseas invocar alguno de los métodos disponibles, en el panel de navegación de Etapas, puedes expandir tu etapa test, seleccionar GET sobre /pets/{petId},

Invocar URL - pets/{petId}

copiar el valor de “Invocar URL”  https://a68dn0h1xd.execute-api.eu-central-1.amazonaws.com/test/pets/{petId}, sustituyendo

{petId} por 1, por ejemplo, y ver el resultado!

Resultado del GET a /pets/1

¿Y la seguridad?

Has podido acceder a la URL de forma fácil porque el tipo de Autorización del método está ajustado a NONE. En AWS puedes proteger tu API con AWS_IAM, por ejemplo. Este tipo de autorización te obligaría a firmar la petición utilizando protocolos SigV4. Puedes leer más sobre este tema en la documentación oficial de AWS.

Conclusión

Gracias a las herramientas avanzadas de AWS, has podido crear una API REST con API Gateway sin un gran esfuerzo, pero lo interesante de este tema es poder crear recursos, y métodos propios y personalizados.

Por eso te animo a conectar y hacerlo tu mismo con ejemplos reales que tengan sentido para tu organización. Eso sí, recuerda que si lo que necesitas es centralizar tus aplicaciones y microservicios, API Gateway puede ser clave para tu negocio.

¿Tu organización está utilizando ya API Gateway?

Foto: Image by Krzysztof Karwan from Pixabay

Fuentes: