Skip to content

Example of a JWT-authenticated API with Node.js, Express, and MySQL Sequelize

Notifications You must be signed in to change notification settings

derlisrd/api-test

Repository files navigation

⚡ API CRUD con Node.js y MySQL 🍃 🐬 💻

Esta es una API CRUD básica desarrollada con Node.js que utiliza Express y Sequelize para la gestión de una api

Requisitos previos

  • Node.js (v14 o superior)
  • npm (v6 o superior)
  • Gestor de base de datos (MySQL)

Instalación 🚀

  1. Clona el repositorio:

    git clone https://github.com/derlisrd/api-test.git
  2. Instala las dependencias

    npm install
  3. Configura la base de datos:

    Crea una base de datos en tu gestor de base de datos preferido. Renombra el archivo .env.example a .env. Abre el archivo .env y actualiza la configuración de la base de datos con tus propias credenciales y detalles de conexión.

  4. Corre las migraciones

    npm run migrate
  5. Corre la aplicación

    npm run start
  6. La API estará disponible

    http://localhost:3030
    

Endpoints

Documentacion

http://localhost:3030/api-docs

Inicia sesión con las credenciales de usuario

  • POST /auth/login - Ingresa con la credenciales.
  • POST /auth/register - Crea un nuevo usuario.

Estructura del objeto para Usuario

El request de login y register tiene la siguiente estructura:

{
  "email": "email@email.com", //requerido
  "password": "clave_muy_segura", //requerido
} 

Por ejemplo la API proporciona los siguientes endpoints para la tabla posts:

  • Recuerda que en los endpoints se requiere incluir el JWT en el encabezado de la solicitud utilizando el formato `Authorization: Bearer {JWT}`. Esto garantiza que las solicitudes sean autenticadas y solo sean accesibles para los usuarios autenticados.

    Authorization: Bearer {JWT}
    
  • GET /posts - Obtiene todos los posts.

  • GET /posts/:id - Obtiene un post por su ID.

  • POST /posts - Crea un nuevo post.

  • PUT /posts/:id - Actualiza un post existente.

  • DELETE /posts/:id - Elimina un post por su ID.

Estructura del objeto Post

Un objeto Post tiene la siguiente estructura:

{
  "id": 1,
  "title": "Título del post", //requerido 
  "body": "Contenido del post", //requerido
  "createdAt": "2023-06-06T12:00:00.000Z", //generado automático
  "updatedAt": "2023-06-06T12:00:00.000Z" //generado automático
} 

Creando más tablas y endpoints

  1. Crea un Modelo con el comando:

    npm run new-model -- NOMBRE_DE_TABLA
    
  2. Crea los controladores

    npm run new-controller -- NombreController
    

Puedes agregarles atributos al modelo editando el archivo creado en src/Models/nombre_modelo.js

  1. Crea las rutas con los verbos necesarios
    Crearlos en la carpeta Routes. Tomar ejemplos de archivo ./Routes/posts.js
    
  2. Corre las migraciones
    npm run migrate
    

Licencia

MIT

About

Example of a JWT-authenticated API with Node.js, Express, and MySQL Sequelize

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published