📚 Gestión de Libros
GET Listar todos los libros
¿Qué hace? Obtiene una lista paginada de todos los libros con información completa.
¿Qué genera? JSON con título, autor, editorial, ISBN, stock disponible, categoría y más.
Respuesta:
{
"count": 7,
"results": [{
"id": 1,
"titulo": "Cien años de soledad",
"isbn": "9780307474728",
"autor_nombre": "Gabriel García Márquez",
"stock_disponible": 3,
"estado": "disponible"
}]
}
GET Buscar libros
¿Qué hace? Busca libros por título, autor o ISBN. Case-insensitive.
¿Qué genera? Lista filtrada de libros que coincidan con el criterio.
Variantes de búsqueda:
?search=amor- Busca "amor" en título/autor/ISBN?categoria=1- Filtra por categoría Ficción?estado=disponible- Solo libros disponibles?autor=1- Libros de García Márquez?search=cien&estado=disponible- Combinar filtros
GET Obtener libro específico
¿Qué hace? Obtiene detalles completos de un libro por su ID.
¿Qué genera? Objeto JSON con TODOS los campos del libro, incluyendo descripción, ubicación física, fechas, etc.
✍️ Gestión de Autores
GET Listar autores
¿Qué hace? Lista todos los autores con biografía, nacionalidad y fecha de nacimiento.
¿Qué genera? Array con información completa de cada autor, incluyendo conteo de sus libros.
Ejemplo de respuesta:
{
"results": [{
"id": 1,
"nombre": "Gabriel",
"apellido": "García Márquez",
"fecha_nacimiento": "1927-03-06",
"nacionalidad": "Colombiano",
"biografia": "Premio Nobel...",
"total_libros": 2
}]
}
GET Ver autor específico
¿Qué hace? Muestra información detallada de un autor y sus libros.
📋 Gestión de Préstamos
GET Listar préstamos
¿Qué hace? Lista todos los préstamos con información del libro, usuario y fechas.
¿Qué genera? Array con préstamos mostrando estado, fechas de préstamo/devolución, multas.
Filtros disponibles:
?estado=activo- Préstamos activos?estado=devuelto- Préstamos ya devueltos?estado=vencido- Préstamos vencidos?usuario=2- Préstamos de un usuario específico?libro=1- Préstamos de un libro específico
POST Crear préstamo
¿Qué hace? Crea un nuevo préstamo y actualiza automáticamente el stock del libro.
¿Qué genera? Registro del préstamo creado + reduce stock_disponible del libro en 1.
Body JSON requerido:
{
"libro": 3,
"usuario": 2,
"fecha_devolucion_esperada": "2026-02-15",
"notas": "Préstamo estándar"
}
✅ stock_disponible del libro se reduce en 1
✅ Si stock llega a 0, estado del libro cambia a "prestado"
✅ Se registra fecha de préstamo automáticamente
✅ Estado inicial es "activo"
Nota: Requiere autenticación de administrador
🏷️ Categorías y Editoriales
GET Listar categorías
¿Qué hace? Lista todas las categorías de libros con descripción.
¿Qué genera? Array con id, nombre y descripción de cada categoría.
GET Listar editoriales
¿Qué hace? Lista editoriales con país, sitio web y fecha de fundación.
📄 Paginación
GET Navegación por páginas
¿Qué hace? Divide resultados en páginas de 10 elementos cada una.
¿Qué genera? JSON con count total, URLs next/previous, y results de la página actual.
Estructura de respuesta:
{
"count": 25,
"next": "http://127.0.0.1:8000/api/libros/?page=2",
"previous": null,
"results": [...]
}
💡 Casos de Uso Completos
Caso 1: Usuario busca y presta un libro
Paso 1: Buscar
GET /api/libros/?search=garcía%20márquez
Paso 2: Verificar stock
GET /api/libros/1/ → Verifica stock_disponible > 0
Paso 3: Crear préstamo
POST /api/prestamos/
{
"libro": 1,
"usuario": 2,
"fecha_devolucion_esperada": "2026-02-15"
}
Resultado:
✅ Préstamo creado con estado "activo"
✅ Libro sigue "disponible" (hay más en stock)
Caso 2: Bibliotecario busca préstamos vencidos
GET /api/prestamos/?estado=vencido
✅ Préstamos donde fecha_devolucion_esperada < hoy
✅ Información del usuario
✅ Información del libro
✅ Días de retraso
✅ Multas aplicadas