Integración de GradQL en API REST existente
Clase 2 de 24 • Curso de GraphQL con Node.js
Resumen
¿Cómo iniciamos con el proyecto base que integra GradQL?
Empezamos nuestra jornada con un proyecto base que ya cuenta con una arquitectura y conecta a una base de datos empleando varias tecnologías esenciales. Este proyecto no solo utiliza una API REST, sino que también se le añadirá GradQL, permitiendo así la coexistencia de ambas arquitecturas. La metodología que veremos a continuación es fruto de un proceso de aprendizaje estructurado a través de varios cursos.
¿Cómo clonamos e instalamos el proyecto base?
Para comenzar, es vital descargar el proyecto desde el repositorio alojado en platzi/platzi.curso.nodejs.gradql
. Esto puede hacerse de dos maneras:
- Crear un fork y trabajar en un espacio personal: Esto te asegura que todas las contribuciones y modificaciones personales queden en tu propio espacio.
- Clonar el repositorio directamente: Permitiendo trabajar sin realizar contribuciones personales al proyecto original.
Una vez elegida la opción deseada, dirígete a un espacio personal de tu computadora donde desees guardar el proyecto. Desde allí ejecuta el siguiente comando para clonar el proyecto:
git clone <URL_del_repositorio>
Luego de la clonación, entra a la carpeta del proyecto y procede a instalar las dependencias requeridas. Esto se realiza comúnmente con un gestor de paquetes como npm
.
¿Cómo configuramos las variables de entorno?
Uno de los pasos cruciales en la configuración de cualquier proyecto es establecer las variables de entorno. Este proyecto previo exige que recursos como contraseñas y claves de API se definan en el archivo .env
, que no se sube al repositorio por razones de seguridad. Para facilitar esta tarea, se ofrece un archivo de ejemplo .env.example
que debes personalizar:
- Crea un archivo
.env
y copia el contenido de.env.example
. - Personaliza las credenciales, por ejemplo:
DATABASE_USER=Nico
DATABASE_PASSWORD=admin123
JWT_SECRET=MyCat
¿Cómo levantamos el contenedor de Postgres?
El proyecto utiliza Docker para gestionar el entorno de la base de datos. Para poner en marcha el contenedor ejecuta:
docker-compose up -d postgres
Para verificar que Postgres está operativa, utiliza:
docker-compose ps
¿Cómo ejecutamos las migraciones y poblamos la base de datos?
Para que la base de datos funcione correctamente, es necesario ejecutar las migraciones que crean la estructura de las tablas. Detén tu servidor de desarrollo y ejecuta las migraciones con:
npm run migrations:run
Para poblar la base de datos con datos iniciales, ejecuta:
npm run migrations:set:auth
Después de estos pasos, reinicia tu servidor de desarrollo para empezar a interactuar con la API.
¿Cómo exploramos la API REST y GradQL?
Una herramienta útil para interactuar con la API REST es Insomnia o Postman. Dentro del repositorio, encontrarás archivos como insomnia.json
y postman.json
, que facilitan esta tarea:
- Importa estos archivos en Insomnia o Postman para acceder a las colecciones de endpoints ya configurados.
- Realiza requests como
GET /api/v1/users
para probar el funcionamiento.
En el caso de endpoints protegidos, se requiere un access token. Esto se genera normalmente a través del login, por ejemplo:
POST /api/v1/auth/login
Una vez obtengas el token, utilízalo para acceder a endpoints seguros como GET /api/v1/categories
.
Explorar este proyecto te permitirá entender su estructura y capacidad, fomentando la interacción y aprendizaje continuo en el desarrollo con GradQL. Al avanzar, profundizaremos en la organización del código, lo que facilitará su implementación práctica.