Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/martinpcdev/todoapi
Challenge backend de roadmap.sh implementando a una api de crear tareas en springboot
https://github.com/martinpcdev/todoapi
authentication crud docker docker-compose java jjwt jwt-authentication postgresql spring-boot spring-jpa spring-validation springsecurity
Last synced: 3 days ago
JSON representation
Challenge backend de roadmap.sh implementando a una api de crear tareas en springboot
- Host: GitHub
- URL: https://github.com/martinpcdev/todoapi
- Owner: MartinpcDev
- Created: 2024-11-06T00:23:35.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-11-07T19:27:30.000Z (3 months ago)
- Last Synced: 2024-12-07T22:12:31.204Z (about 2 months ago)
- Topics: authentication, crud, docker, docker-compose, java, jjwt, jwt-authentication, postgresql, spring-boot, spring-jpa, spring-validation, springsecurity
- Language: Java
- Homepage:
- Size: 25.4 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# TODO API
Challenge basado en: [TODO API](https://roadmap.sh/projects/todo-list-api)
Una API RESTful que permite a los usuarios gestionar una lista de tareas. La API incluye
autenticación de usuario, operaciones CRUD para las tareas, manejo de errores, medidas de seguridad
y soporte para paginación y filtrado.## Objetivos
Este proyecto te ayudará a desarrollar y fortalecer las siguientes habilidades:
* Autenticación de usuarios
* Diseño de esquemas y bases de datos
* Diseño de API RESTful
* Operaciones CRUD
* Manejo de errores
* Seguridad## Requisitos
El proyecto cumple con los siguientes requisitos:
* **Registro de Usuarios**: Permite crear un nuevo usuario.
* **Autenticación y Login**: Autenticacion de usuario y genera un token.
* **Operaciones CRUD**: Permite crear, leer, actualizar y eliminar tareas.
* **Autenticación de Usuarios**: Solo los usuarios autorizados pueden acceder a la lista de tareas.
* **Manejo de Errores y Seguridad**: Implementación de medidas de seguridad y manejo de errores.
* **Base de Datos**: Almacena los datos de usuarios y de la lista de tareas en una base de datos.
* **Validación de Datos**: Implementación de validaciones adecuadas en las entradas de datos.
* **Paginación y Filtrado**: La lista de tareas soporta paginación y filtrado para facilitar la
navegación.## Endpoints
La API incluye los siguientes endpoints clave:
Autenticación de Usuarios
* **Registro de Usuario** (`POST /register`): Registra un nuevo usuario.
* **Login** (`POST /login`): Autentica al usuario y genera un token de acceso.## Gestión de Tareas
* **Crear Tarea** (POST /todos): Crea una nueva tarea (requiere autenticación).
* **Obtener Lista de Tareas** (GET /todos): Obtiene la lista de tareas con soporte para paginación y
filtrado (requiere autenticación).
* **Obtener Lista de Tareas por usuarios** (GET /todos/me): Obtiene la lista de tareas por usuario
(requiere autenticación).
* **Actualizar Tarea** (PUT /todos/{id}): Actualiza una tarea específica (requiere autenticación).
* **Eliminar Tarea** (DELETE /todos/{id}): Elimina una tarea específica (requiere autenticación).## Uso
1. **Registro y Login**: Registra un usuario y autentícate para recibir el token de acceso.
2. **Acceso a Endpoints de Tareas**: Usa el token de acceso en el encabezado Authorization para
realizar operaciones CRUD en las tareas.
3. **Paginación y Filtrado**: Los parámetros page, pageSize y otros filtros opcionales pueden usarse
en el endpoint de obtener tareas.## Tecnologías Usadas
* **Backend**: SpringBoot, Java
* **Base de Datos**: PostgreSQL
* **Autenticación**: Spring Security ,JSON Web Tokens (JWT)