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.

Los endpoints bajo /api/autores gestionan el registro de autores del catálogo de la biblioteca. Los resultados de listado se ordenan alfabéticamente por apellido. La combinación nombre + apellido es única en el sistema.
Todas las rutas de este recurso requieren autenticación mediante Bearer token. Incluye la cabecera Authorization: Bearer <token> en cada solicitud. Las peticiones sin token o con token inválido recibirán una respuesta 401 Unauthorized.

GET /api/autores

Devuelve la lista completa de autores registrados, ordenados alfabéticamente por apellido. Soporta búsqueda de texto libre que coincide contra nombre, apellido y nacionalidad simultáneamente. Cada elemento incluye el campo _count.materiales con el número de materiales asociados al autor. Este endpoint no está paginado.
curl -X GET "https://api.biblioteca.com/api/autores?search=García" \
  -H "Authorization: Bearer <token>"

Query Parameters

Texto libre. Busca coincidencias parciales en nombre, apellido y nacionalidad.

Response

{
  "success": true,
  "message": "Operación exitosa",
  "data": [
    {
      "id": 5,
      "nombre": "Gabriel",
      "apellido": "García Márquez",
      "nacionalidad": "Colombiana",
      "biografia": "Escritor y periodista colombiano, Premio Nobel de Literatura 1982.",
      "_count": {
        "materiales": 4
      }
    },
    {
      "id": 11,
      "nombre": "Federico",
      "apellido": "García Lorca",
      "nacionalidad": "Española",
      "biografia": "Poeta, dramaturgo y prosista español.",
      "_count": {
        "materiales": 2
      }
    }
  ]
}

GET /api/autores/:id

Devuelve el detalle completo de un autor por su ID. Incluye la lista de materiales asociados (con id, titulo, tipo y estado) y el conteo total de materiales en _count.materiales.
curl -X GET "https://api.biblioteca.com/api/autores/5" \
  -H "Authorization: Bearer <token>"

Path Parameters

id
integer
required
ID numérico único del autor.

Response

{
  "success": true,
  "message": "Operación exitosa",
  "data": {
    "id": 5,
    "nombre": "Gabriel",
    "apellido": "García Márquez",
    "nacionalidad": "Colombiana",
    "biografia": "Escritor y periodista colombiano, Premio Nobel de Literatura 1982.",
    "materiales": [
      {
        "id": 1,
        "titulo": "Cien Años de Soledad",
        "tipo": "LIBRO",
        "estado": "DISPONIBLE"
      },
      {
        "id": 57,
        "titulo": "El Coronel no tiene quien le escriba",
        "tipo": "LIBRO",
        "estado": "PRESTADO"
      }
    ],
    "_count": {
      "materiales": 4
    }
  }
}
404 Not Found si el ID no corresponde a ningún autor registrado.

POST /api/autores

Registra un nuevo autor. Los campos nombre y apellido son obligatorios y se recortan de espacios en los extremos antes de guardarse. La combinación nombre + apellido debe ser única en el sistema.
curl -X POST "https://api.biblioteca.com/api/autores" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "nombre": "Julio",
    "apellido": "Cortázar",
    "nacionalidad": "Argentina",
    "biografia": "Escritor, traductor e intelectual argentino, uno de los maestros del cuento latinoamericano."
  }'

Body Parameters

nombre
string
required
Nombre del autor. No puede estar vacío. Se recorta de espacios en los extremos.
apellido
string
required
Apellido del autor. No puede estar vacío. Se recorta de espacios en los extremos.
nacionalidad
string
Nacionalidad del autor. Campo opcional, se recorta de espacios en los extremos.
biografia
string
Biografía o descripción del autor. Campo opcional, se recorta de espacios en los extremos.

Response 201 Created

{
  "success": true,
  "message": "Autor creado correctamente",
  "data": {
    "id": 23,
    "nombre": "Julio",
    "apellido": "Cortázar",
    "nacionalidad": "Argentina",
    "biografia": "Escritor, traductor e intelectual argentino, uno de los maestros del cuento latinoamericano."
  }
}

Error Responses

CódigoMotivo
400 Bad RequestFalta nombre o apellido, o alguno de los campos no pasa la validación.
409 ConflictYa existe un autor con la misma combinación de nombre y apellido.

PUT /api/autores/:id

Actualiza uno o más campos de un autor existente. Todos los campos del cuerpo son opcionales; sólo se modifican los que se envíen. Si se modifica nombre o apellido, la nueva combinación debe seguir siendo única en el sistema.
curl -X PUT "https://api.biblioteca.com/api/autores/23" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "nacionalidad": "Argentino-Francesa",
    "biografia": "Escritor y traductor con doble nacionalidad, radicado en París desde 1951."
  }'

Path Parameters

id
integer
required
ID numérico del autor a actualizar.

Body Parameters

nombre
string
Nuevo nombre del autor.
apellido
string
Nuevo apellido del autor.
nacionalidad
string
Nueva nacionalidad del autor.
biografia
string
Nueva biografía del autor.

Response

{
  "success": true,
  "message": "Autor actualizado correctamente",
  "data": {
    "id": 23,
    "nombre": "Julio",
    "apellido": "Cortázar",
    "nacionalidad": "Argentino-Francesa",
    "biografia": "Escritor y traductor con doble nacionalidad, radicado en París desde 1951."
  }
}
404 Not Found si el ID no existe.

DELETE /api/autores/:id

Elimina permanentemente un autor del sistema. La operación falla si el autor tiene materiales asociados, independientemente del estado de esos materiales.
No es posible eliminar un autor que tenga materiales asociados. El servidor cuenta los materiales vinculados al autor antes de proceder y devuelve 409 Conflict si ese conteo es mayor a 0, indicando cuántos materiales están afectados. Para poder eliminar el autor, primero debes reasignar o eliminar todos sus materiales.
curl -X DELETE "https://api.biblioteca.com/api/autores/23" \
  -H "Authorization: Bearer <token>"

Path Parameters

id
integer
required
ID numérico del autor a eliminar.

Response

{
  "success": true,
  "message": "Operación exitosa",
  "data": {
    "message": "Autor eliminado correctamente"
  }
}

Error Responses

CódigoMotivo
404 Not FoundEl ID no corresponde a ningún autor registrado.
409 ConflictEl autor tiene uno o más materiales asociados. El mensaje indica la cantidad exacta, p. ej.: "No se puede eliminar el autor porque tiene 4 material(es) asociado(s)".

Build docs developers (and LLMs) love