Esta es una API CRUD básica desarrollada con Node.js que utiliza Express y Sequelize para la gestión de una api
- Node.js (v14 o superior)
- npm (v6 o superior)
- Gestor de base de datos (MySQL)
-
Clona el repositorio:
git clone https://github.com/derlisrd/api-test.git
-
Instala las dependencias
npm install
-
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.
-
Corre las migraciones
npm run migrate
-
Corre la aplicación
npm run start
-
La API estará disponible
http://localhost:3030
http://localhost:3030/api-docs
- POST /auth/login - Ingresa con la credenciales.
- POST /auth/register - Crea un nuevo 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.
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
}
-
Crea un Modelo con el comando:
npm run new-model -- NOMBRE_DE_TABLA
-
Crea los controladores
npm run new-controller -- NombreController
Puedes agregarles atributos al modelo editando el archivo creado en src/Models/nombre_modelo.js
- Crea las rutas con los verbos necesarios
Crearlos en la carpeta Routes. Tomar ejemplos de archivo ./Routes/posts.js
- Corre las migraciones
npm run migrate