Actualmente, en un numeroso porcentaje de proyectos, existe el flujo de los datos a través de métodos que son programados en archivos y ejecutados de manera local, haciendo que dicho proyecto tenga todos los servicios centralizados. Esto es una gran desventaja a la hora de ampliar el proyecto, ya que por la cantidad de servicios que almacena en su interior se ralentiza y empeora su calidad.

Para ello, vamos a descentralizar una parte crucial de un proyecto y es almacenar todos los métodos en una api, y subirlo a un servidor cloud, que en este caso es AWS Api Gateway.

Vamos a comenzar creando un proyecto que será la API y veremos cómo podemos subirla a cloud y cómo recoger datos, modificarlos, eliminarlos, etc.

1. Creamos un proyecto AWS Serverless en Visual Studio 2019:

2. Seleccionamos en concreto, el tipo de Web Api como servicio:

4. Se crea la carpeta Models, y añadimos un modelo llamado Coche:

Modelo Coche

5.Creamos una carpeta llamada Repositories, ahí estarán los métodos almacenados, dentro de la carpeta creamos la clase RepositoryCoches:

6. A continuación, creamos un Api Controller llamado CochesController y añadimos los métodos creados en el repositorio para poder acceder a ellos en la API:

7. Añadimos en Startup la dependencia insertada en el constructor del controller:

8. Una vez creada la API, debemos ir a Extensions > AWS Toolkit > Getting Started, y añadimos las credenciales de un usuario (Creado en IAM) con permisos de Administador/Api Gateway para poder acceder a los servicios de AWS y permitir subir la api al servicio de Api Gateway:

9. Tras añadir las credenciales, pulsamos click derecho en el proyecto y seleccionamos la opción de «Publish AWS Lambda»:

10. Le damos un nombre a la api y lo añadimos a un Bucket S3 (guardará como contenedor la api):

11. Publicamos la API:

Y finalmente, ya publicada podemos acceder a ella a través de la URL que nos proporciona en el apartado de AWS Serverless URL o a través del servicio Api Gateway en AWS.

El inconveniente de crear una API es tener que crear un proyecto a parte del proyecto base, pero es mayor los beneficios que proporciona el desvincular los servicios para estar distribuidos que estando de manera centralizada, es bastante cómodo de utilizar y desarrollar.

Autor/a: Maria Adela España Moya.

Curso: Desarrollo Web Full Stack, MultiCloud y Multiplataforma.

Centro: Tajamar.

Año académico: 2021-2022

Código / recursos utilizados / Otros datos de interés: https://github.com/MariaAdel-22/ProyectoApiAWS

Leave a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.