Task Manager API es una API para gestionar tareas colaborativas, diseñada para permitir la autenticación basada en cookies y la administración de roles. Este README describe las principales funcionalidades, configuraciones y cómo empezar a usarla.
- Autenticación: Basada en cookies con rutas protegidas.
- Administración de Roles: Soporta roles como
AdminyUserpara gestionar permisos. - Gestor de Tareas: CRUD para tareas con asignación de usuarios y estados.
- Validaciones de Seguridad: Verifica permisos y restricciones según el usuario autenticado.
- Documentación Swagger: Incluye un entorno de pruebas interactivo.
- .NET 6.0 o superior.
- SQL Server para la base de datos.
- Postman (opcional para pruebas manuales).
-
Clona este repositorio:
git clone https://github.com/tuusuario/task-manager-api.git cd task-manager-api -
Configura la base de datos y usuario por defecto en el archivo
appsettings.json:"ConnectionStrings": { "DefaultConnection": "Server=tu_servidor;Database=taskmanager;User Id=tu_usuario;Password=tu_password;" },
"DefaultUsername": "usuario_por_defecto",
"DefaultPassword": "contraseña_por_defecto" -
Aplica las migraciones para inicializar la base de datos:
dotnet ef database update
-
Inicia la API:
dotnet run
-
Accede a la documentación Swagger en: http://localhost:5000/swagger
La autenticación se realiza enviando el username y password a la ruta:
Endpoint:
POST /api/User/LoginBody:
{
"username": "user123",
"password": "mypassword"
}Si la autenticación es exitosa, se devuelve una cookie que debe incluirse en las solicitudes posteriores.
GET /api/TaskRequiere autenticación.
POST /api/TaskBody:
{
"title": "Nueva tarea",
"description": "Detalles de la tarea",
"statusId": 1,
"assignedId": 2
}PUT /api/Task/{id}Body:
{
"title": "Tarea actualizada",
"description": "Detalles actualizados",
"statusId": 2
}DELETE /api/Task/{id}Requiere permisos de usuario creador.
Solo los usuarios con rol Admin pueden asignar roles. Ejemplo:
Endpoint:
PUT /api/User/{id}Body:
{
"role": "Admin"
}La API incluye un esquema de autenticación basado en cookies para probar rutas protegidas desde la interfaz Swagger:
- Autentícate usando la ruta
/api/User/Logindirectamente desde Swagger. - Copia la cookie generada y usa las rutas protegidas.
- Realiza un fork de este repositorio.
- Crea una rama con tu función:
git checkout -b mi-nueva-funcion. - Haz un commit de tus cambios:
git commit -m 'Añade mi nueva función'. - Realiza un push a la rama:
git push origin mi-nueva-funcion. - Abre un Pull Request.
Este proyecto está bajo la licencia MIT.