https://github.com/pointedsec/nestjs-basic-product-api
https://github.com/pointedsec/nestjs-basic-product-api
Last synced: 19 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/pointedsec/nestjs-basic-product-api
- Owner: pointedsec
- Created: 2023-09-25T21:23:49.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-08-06T15:29:02.000Z (almost 2 years ago)
- Last Synced: 2024-08-07T19:11:49.836Z (almost 2 years ago)
- Language: TypeScript
- Size: 144 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# API Rest con NestJS
Esta es una API Rest desarrollada con NestJS que proporciona funcionalidades para la gestión de productos y pedidos, así como autenticación de usuarios.
## Funcionalidades
- **Productos**: Puedes realizar operaciones CRUD (Crear, Leer, Actualizar y Borrar) para gestionar productos. Ten en cuenta que la creación, actualización y eliminación de productos están deshabilitadas por defecto por razones de seguridad. Si deseas habilitar estas operaciones, puedes hacerlo siguiendo las instrucciones en el código fuente.
- **Pedidos**: También puedes realizar operaciones CRUD para gestionar pedidos. La eliminación y actualización de pedidos están deshabilitadas por defecto, pero puedes habilitarlas si lo deseas.
- **Autenticación**: La API admite autenticación de usuarios con funciones de registro y inicio de sesión. Utiliza JSON Web Tokens (JWT) para mantener a los usuarios autenticados.
- **Seguridad**: Se han implementado medidas de seguridad para limitar las acciones permitidas, como el acceso a los pedidos, que solo pueden ser vistos por el usuario que los creó.
## Requisitos
Asegúrate de tener instalado Node.js y npm en tu sistema antes de continuar.
## Instalación
1. Clona este repositorio en tu máquina local:
```bash
git clone https://github.com/andresdrew02/nestjs-basic-product-api
```
2. Navega al directorio del proyecto:
```bash
cd nestjs-basic-product-api
```
3. Instala las dependencias:
```bash
npm install
```
## Configuración
1. Abre el archivo `config.ts` en la raíz del proyecto y configura las opciones de base de datos y JWT según tus necesidades. (Por defecto está configurado con SQLite3)
2. Si deseas habilitar las operaciones de creación, actualización y eliminación de productos o pedidos, busca las secciones correspondientes en los controladores y descomenta las líneas necesarias en el código fuente.
## Uso
1. Inicia la aplicación:
```bash
npm start
```
2. La API estará disponible en `http://localhost:3000` de forma predeterminada. Puedes modificar el puerto en el archivo de configuración si es necesario.
## Endpoints
A continuación, se enumeran los principales puntos finales de la API:
- `GET /api/products`: Obtener la lista de productos.
- `GET /api/productos`: Obtener un producto por su ID. (Revistar los filtros en el código).
- `POST /api/products`: Crear un nuevo producto (habilitar en la configuración si es necesario).
- `PUT /api/products/:id`: Actualizar un producto existente (habilitar en la configuración si es necesario).
- `DELETE /api/products/:id`: Eliminar un producto existente (habilitar en la configuración si es necesario).
- `DELETE /api/products/2?force=true` : Eliminar un producto existente junto a todos sus pedidos (habilitar en la configuración si es necesario).
- `GET /api/orders`: Obtener la lista de pedidos.
- `GET /api/orders/:id`: Obtener un pedido por su ID.
- `POST /api/orders`: Crear un nuevo pedido.
- `PUT /api/orders/:id`: Actualizar un pedido existente (habilitar en la configuración si es necesario).
- `DELETE /api/orders/`: Eliminar un pedido existente (habilitar en la configuración si es necesario).
- `POST /api/auth/register`: Registrar un nuevo usuario y obtener un token JWT.
- `POST /api/auth/login`: Iniciar sesión y obtener un token JWT.
## Contribución
Si deseas contribuir a este proyecto, ¡estamos encantados de recibir tus contribuciones! Por favor, sigue los estándares de codificación y envía tus solicitudes de extracción.
## Licencia
Este proyecto está bajo la Licencia MIT. Consulta el archivo `LICENSE` para obtener más detalles.
---
¡Gracias por usar esta API Rest desarrollada con NestJS! Si tienes alguna pregunta o problema, no dudes en crear un problema o ponerte en contacto con el equipo de desarrollo.