Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/camiloivcode/biblioteca-la-palabra/llms.txt

Use this file to discover all available pages before exploring further.

El módulo de catálogos provee los dos ejes de clasificación que estructuran el fondo bibliográfico de Biblioteca Popular La Palabra: los autores y las categorías. Ambos son entidades de referencia a las que se vinculan los materiales, por lo que mantenerlos limpios y bien definidos impacta directamente en la calidad de las búsquedas, filtros e informes del sistema.

Autores

Modelo

Cada autor se representa con los siguientes campos:
CampoTipoRequeridoDescripción
idIntegerIdentificador autoincremental
nombreStringNombre(s) del autor
apellidoStringApellido(s) del autor
nacionalidadStringPaís o región de origen (opcional)
biografiaStringTexto libre de presentación biográfica (opcional)
El campo _count.materiales es calculado y se devuelve en las respuestas de listado e individual para saber cuántos materiales tiene asociados el autor.

Operaciones

MétodoRutaDescripción
GET/api/autoresLista todos los autores. Acepta ?search= para filtrar por nombre, apellido o nacionalidad.
GET/api/autores/:idObtiene un autor por ID. Incluye la lista completa de sus materiales.
POST/api/autoresCrea un nuevo autor. nombre y apellido son obligatorios.
PUT/api/autores/:idActualiza los datos de un autor existente.
DELETE/api/autores/:idElimina un autor. Bloqueado si tiene materiales asociados (HTTP 409).
La combinación nombre + apellido debe ser única en la base de datos (restricción @@unique([nombre, apellido]) en el esquema Prisma). Intentar crear un segundo autor con el mismo nombre completo devolverá un error de restricción de unicidad. Verifica duplicados antes de insertar.

Ejemplo: crear un autor

curl -X POST https://tu-api/api/autores \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "nombre": "Julio",
    "apellido": "Cortázar",
    "nacionalidad": "Argentina",
    "biografia": "Escritor argentino, uno de los maestros del cuento en lengua castellana."
  }'

Ejemplo: respuesta al listar autores

{
  "success": true,
  "data": [
    {
      "id": 1,
      "nombre": "Gabriel",
      "apellido": "García Márquez",
      "nacionalidad": "Colombia",
      "biografia": null,
      "_count": { "materiales": 4 }
    }
  ]
}

Categorías

Modelo

CampoTipoRequeridoDescripción
idIntegerIdentificador autoincremental
nombreStringNombre de la categoría. Debe ser único.
descripcionStringDescripción libre de la categoría (opcional)
iconoStringClave de icono Material Symbols (ver lista más abajo)
Al igual que con los autores, _count.materiales se devuelve calculado en el listado para conocer cuántos materiales pertenecen a cada categoría.

Operaciones

MétodoRutaDescripción
GET/api/categoriasLista todas las categorías ordenadas alfabéticamente.
GET/api/categorias/:idObtiene una categoría por ID. Incluye la lista de materiales asociados.
POST/api/categoriasCrea una nueva categoría. nombre es obligatorio.
PUT/api/categorias/:idActualiza los datos de una categoría existente.
DELETE/api/categorias/:idElimina una categoría. Bloqueado si tiene materiales asociados (HTTP 409).

Iconos disponibles

El campo icono acepta exclusivamente los siguientes 26 valores de la librería Material Symbols. El frontend los muestra en un selector visual al crear o editar una categoría.
Si no se especifica un icono, el esquema usa category como valor por defecto. Cualquier valor fuera de esta lista será rechazado con un error de validación.
menu_book       history         science         lightbulb       palette
computer        calculate       public          music_note      emoji_events
category        book            biotech         architecture    psychology
sports_esports  language        travel_explore  newspaper       theater_comedy
pets            restaurant      sailing         stadium         volcano
forest

Ejemplo: crear una categoría

curl -X POST https://tu-api/api/categorias \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "nombre": "Astronomía",
    "descripcion": "Libros sobre el universo, planetas y exploración espacial.",
    "icono": "science"
  }'

Seed inicial

Al ejecutar el seed de base de datos, el sistema crea automáticamente los siguientes registros de referencia: 6 categorías por defecto:
NombreIcono
Literaturamenu_book
Historiahistory
Cienciasscience
Filosofíalightbulb
Artepalette
Tecnologíacomputer
5 autores por defecto:
NombreApellidoNacionalidad
GabrielGarcía MárquezColombia
Jorge LuisBorgesArgentina
IsabelAllendeChile
MarioVargas LlosaPerú
JulioCortázarArgentina
Estos registros sirven como punto de partida para poblar el catálogo. Pueden editarse o eliminarse siempre que no tengan materiales asociados.

Referencia de API

Para la referencia completa de parámetros, esquemas de respuesta y códigos de error consulta los endpoints:

Build docs developers (and LLMs) love