# Ruta 03 · Sesión 04 — Contratos seguros de API: entradas, respuestas y límites

Uso educativo: caso ficticio de reserva de espacios. Todos los actores y datos son ejemplos.

## Objetivo

Redactar un contrato de seguridad de API con pruebas de validación, exposición y límites.

## Escenario

La API conceptual POST /reservas acepta solicitudes de G-A. Una propuesta inicial acepta cualquier campo del cuerpo y consulta disponibilidad antes de escribir sin control de concurrencia.

## Trabajo opcional

1. Enumera campos permitidos, tipos y reglas de negocio.
2. Define identidad, permiso y respuesta mínima por operación.
3. Fija límites didácticos y respuesta ante conflicto.
4. Diseña pruebas de campos protegidos y dos solicitudes simultáneas.

## Plantilla

| Operación conceptual | Identidad y permiso | Campos admitidos | Respuesta mínima | Límites | Errores |
|---|---|---|---|---|---|
| POST /reservas | U-01, crear en G-A | sala, fecha, duración, asistentes | id, estado, versión | Completar | 400, 401, 403, 409, 429 |
| GET /reservas/{id} | Completar | Identificador | Completar | Completar | Completar |
| POST /reservas/{id}/aprobacion | Completar | Versión revisada | Completar | Completar | Completar |

## Solución orientativa

- Aceptar solo campos funcionales; derivar identidad y ámbito desde el contexto validado.
- Proyectar una respuesta mínima sin datos privados de otras reservas.
- Confirmar exclusividad de sala y horario en una operación atómica.
- Rechazar campos protegidos y entradas fuera de rango; devolver un conflicto controlado ante colisión.

## Evidencia propia

- Decisión y justificación:
- Prueba positiva:
- Prueba negativa:
- Resultado observado (o esperado si no ejecutas la prueba):
- Riesgo pendiente y responsable:

## Referencias

- [OWASP REST Security](https://cheatsheetseries.owasp.org/cheatsheets/REST_Security_Cheat_Sheet.html)
- [OWASP ASVS 5.0.0](https://owasp.org/www-project-application-security-verification-standard/)

## Procedencia y reutilización

Material elaborado para el proyecto personal de Andrez Higuera con apoyo de ChatGPT. Contiene información neutral y escenarios ficticios con fines educativos. Responsable editorial: Andrez Higuera. La mención de estándares y organizaciones en las referencias no implica afiliación, patrocinio ni certificación.

**Recurso:** ACA-REC-16 · **Versión editorial:** 1.0 · **Revisión:** 27 de septiembre de 2026.

Los textos educativos, ejercicios, plantillas y soluciones propios de este recurso se ofrecen bajo Creative Commons Atribución-NoComercial 4.0 Internacional (CC BY-NC 4.0). Al compartirlos o adaptarlos, conserve la atribución y los avisos aplicables, incluya el enlace al original y a la licencia, e indique los cambios. Los componentes de terceros identificados por separado conservan sus condiciones. Esta licencia no concede derechos sobre marcas ni implica respaldo institucional.

[Original](https://briefing.andrezhiguera.cl/academia/recursos/16-contrato-api.md) · [Licencia CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/) · [Alcance y condiciones](https://briefing.andrezhiguera.cl/academia/condiciones-de-uso).
