# EX-B1-03 · Biblioteca de investigación

## Necesidad

La biblioteca necesita un contrato HTTP para que aplicaciones internas puedan:

- listar documentos y filtrarlos por autor, disponibilidad y año;
- consultar un documento concreto;
- consultar los autores asociados a un documento;
- registrar un nuevo préstamo;
- consultar un préstamo;
- registrar que un préstamo ha terminado.

## Entidades conocidas

- Documento: identificador estable, título, año, disponibilidad.
- Autor: identificador estable y nombre.
- Préstamo: identificador asignado por el servidor, documento, prestatario,
  instante de inicio e instante de finalización cuando corresponda.

## Diccionario técnico mínimo

Los nombres siguientes forman parte del contrato que debes diseñar; no son
placeholders arbitrarios:

| Nombre | Ubicación prevista | Significado | Ejemplo |
| --- | --- | --- | --- |
| `document_id` | path o representación | Identificador estable del documento. | `doc-204` |
| `author_id` | path o filtro de query | Identificador estable del autor. | `author-17` |
| `available` | query o representación | Indica si el documento admite un préstamo nuevo. | `true` |
| `publication_year` | query o representación | Año de publicación, no año de alta en el sistema. | `2024` |
| `loan_id` | path o representación | Identificador del préstamo asignado por el servidor. | `loan-891` |
| `borrower_id` | body | Identificador de la persona o servicio prestatario. | `user-52` |
| `started_at` | representación | Instante UTC en que comenzó el préstamo. | `2026-07-31T09:15:00Z` |
| `returned_at` | representación | Instante UTC de devolución; `null` mientras siga activo. | `null` |

Elige las rutas y métodos, pero conserva estos significados y documenta cualquier
nombre alternativo que adoptes.

## Restricciones

- Un documento puede tener varios autores.
- Un documento no puede mantener dos préstamos activos simultáneos.
- La referencia de préstamo la asigna el servidor.
- Un cliente puede repetir una petición después de perder la respuesta.
- No se define cómo representar la finalización de un préstamo.
- No se pide autenticación, persistencia ni implementación.

## Preguntas abiertas

Registra las decisiones necesarias y cualquier pregunta adicional que
formularías antes de congelar el contrato.
