https://github.com/agush44/api_movies
Este proyecto consiste en una aplicación backend que permite gestionar una base de datos de películas y usuarios. Incluye funcionalidades de registro, autenticación y operaciones CRUD en películas. Además, implementa medidas de seguridad y está documentada con Swagger.
https://github.com/agush44/api_movies
express helmet javascript joi jwt mongodb nodejs npm swagger
Last synced: 3 months ago
JSON representation
Este proyecto consiste en una aplicación backend que permite gestionar una base de datos de películas y usuarios. Incluye funcionalidades de registro, autenticación y operaciones CRUD en películas. Además, implementa medidas de seguridad y está documentada con Swagger.
- Host: GitHub
- URL: https://github.com/agush44/api_movies
- Owner: agush44
- Created: 2024-12-05T17:18:09.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-12T01:16:44.000Z (over 1 year ago)
- Last Synced: 2025-09-21T18:51:24.413Z (10 months ago)
- Topics: express, helmet, javascript, joi, jwt, mongodb, nodejs, npm, swagger
- Language: JavaScript
- Homepage:
- Size: 72.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# API RESTful de Gestión de Películas y Usuarios
## Descripción
Este proyecto consiste en una aplicación backend que permite gestionar una base de datos de películas y usuarios. Incluye funcionalidades de registro, autenticación y operaciones CRUD en películas. Además, implementa medidas de seguridad y está documentada con Swagger.
## Características
- Registro y autenticación de usuarios con contraseñas encriptadas.
- Operaciones CRUD (crear, leer, actualizar, eliminar) en películas.
- Autenticación mediante tokens JWT para proteger endpoints sensibles.
- Validación de datos usando `Joi` y middleware personalizado.
- Seguridad mejorada mediante `Helmet`.
- Documentación de la API utilizando Swagger.
## Tecnologías utilizadas
- **Node.js**
- **Express**
- **MongoDB** (con Mongoose)
- **JWT** para autenticación
- **Helmet** para seguridad
- **Swagger** para documentación
- **Joi** para validación
## Instalación
1. Clona el repositorio:
```bash
git clone https://github.com/agush44/api_movies.git
cd api_movies
```
2. Instala las dependencias:
```bash
npm install
```
3. Crea un archivo `.env` con las siguientes variables:
```env
PORT=3000
MONGO_URI=tu_conexion_mongo
JWT_SECRET=tu_secreto_jwt
```
4. Inicia la aplicación:
```bash
npm start
```
## Rutas de la API
### Usuarios
| Método | Endpoint | Descripción |
|--------|-------------------|-----------------------------------|
| POST | `/api/users/register` | Registra un nuevo usuario. |
| POST | `/api/users/login` | Inicia sesión y devuelve un token.|
### Películas
| Método | Endpoint | Descripción |
|--------|-------------------|--------------------------------------|
| GET | `/api/movies` | Obtiene todas las películas. |
| GET | `/api/movies/:id` | Obtiene una película por su ID. |
| POST | `/api/movies` | Crea una nueva película (autenticado).|
| PUT | `/api/movies/:id` | Actualiza una película (autenticado).|
| DELETE | `/api/movies/:id` | Elimina una película (autenticado). |
## Documentación
Accede a la documentación Swagger en:
```
http://localhost:3000/api-docs
```
## Seguridad
La API implementa `Helmet` para mejorar la seguridad estableciendo cabeceras HTTP seguras.