Libreria API
API REST para gestionar una biblioteca digital.
API backend construida con FastAPI para gestionar usuarios, libros, categorías y permisos de acceso. Incluye autenticación mediante JWT y un sistema de roles orientado al control de las operaciones de la plataforma.
- FastAPI
- framework
- REST
- arquitectura
- JWT
- autenticación
- RBAC
- control de acceso
Una biblioteca digital necesita controlar diferentes tipos de usuarios y operaciones sobre sus recursos. No todos los usuarios deben tener las mismas capacidades para crear, modificar o eliminar libros y categorías.
Se desarrolló una API REST con FastAPI que centraliza la gestión de usuarios, libros y categorías. La API incorpora autenticación mediante JWT y un sistema de roles y permisos para controlar el acceso a las diferentes operaciones.
Cómo está montado
Las capas de arriba abajo, con la tecnología concreta de cada una.
- 05
Persistencia
La aplicación mantiene una capa independiente para la gestión de la base de datos, modelos y operaciones CRUD.
Qué elegí y qué descarté
- D01
API REST con FastAPI
Se eligió FastAPI para construir una API ligera y estructurada, aprovechando el tipado de Python y la definición clara de endpoints.
- D02
Autenticación mediante JWT
La autenticación utiliza tokens JWT para permitir que los usuarios accedan de forma segura a los recursos protegidos de la API.
- D03
Roles y permisos
El acceso a las operaciones se controla mediante roles y permisos, permitiendo diferenciar las capacidades de administradores y usuarios.
- D04
Separación por responsabilidades
El proyecto organiza el código en módulos independientes para autenticación, CRUD, base de datos, modelos, rutas, schemas y utilidades.
Retos y cómo se resolvieron
- 01
Control de acceso
Uno de los principales retos consiste en garantizar que cada operación esté disponible únicamente para los usuarios que cuentan con los permisos necesarios.
- 02
Gestión de recursos
La API debe mantener operaciones coherentes para diferentes recursos como usuarios, libros y categorías, incluyendo validaciones y respuestas HTTP apropiadas.
- 03
Autenticación segura
El sistema incorpora autenticación mediante JWT y contempla respuestas diferenciadas para errores de autenticación, autorización, recursos inexistentes y validación.