01
La entrada es un contrato
Para crear una reserva, acepta sala, fecha, duración y cantidad de asistentes con tipos y rangos explícitos. El esquema detecta campos inválidos; la lógica del servidor comprueba disponibilidad, capacidad y permisos. Define cómo manejar campos desconocidos y evita enlazar automáticamente el cuerpo completo a una entidad interna.
En el ejercicio, las salas admiten entre 1 y 50 asistentes y bloques de 30 a 180 minutos. Estos valores son parámetros didácticos, no una norma. El cliente no decide creatorId, groupId autorizado ni el estado aprobado. Usa consultas parametrizadas y codificación de salida adecuada al contexto.
02
Respuestas y errores
Diseña un objeto de salida por operación. La consulta de disponibilidad no requiere nombres de solicitantes ni comentarios privados de otras reservas. Una API puede aplicar correctamente autorización sobre el objeto y aun así filtrar campos innecesarios.
Distingue entrada inválida, falta de autenticación, permiso insuficiente, conflicto y límite excedido. Devuelve mensajes útiles y un identificador de correlación, sin trazas internas ni secretos. En este caso, 409 representa un conflicto de disponibilidad; no implica que la persona pueda conocer detalles de la reserva que ocupa el espacio.
03
Recursos finitos y concurrencia
Limita tamaño del cuerpo, paginación, tiempo de ejecución y número de operaciones según su costo. Un listado masivo y una consulta puntual no consumen lo mismo. CORS controla lecturas entre orígenes en navegadores; no es un control de autenticación ni impide llamadas directas.
Dos solicitudes pueden encontrar libre la misma sala antes de reservarla. La regla de exclusividad debe imponerse al confirmar la escritura, mediante una transacción o mecanismo equivalente. La respuesta a una colisión es un conflicto controlado, no una segunda confirmación que luego deba corregirse manualmente.
04
Un contrato verificable
Documenta método, ruta conceptual, identidad, acción, campos, respuesta mínima, límites y errores. Para cada condición agrega un caso válido y uno adverso. Mantén las rutas como ejemplos didácticos; esta lección no habilita una API real en el sitio.
Prueba una cantidad negativa, un campo approvedBy inyectado, un cuerpo excesivo, dos reservas simultáneas y una respuesta con información ajena. Registra cómo se ejecutaría cada prueba y qué evidencia confirmaría el control. Relaciona el resultado con una amenaza de la Ruta 02.
Criterios para aplicarlo
- 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.
05 · Práctica guiada · opcional
Practica lo aprendido
Especifica creación, consulta y aprobación de reservas.
- 01Enumera campos permitidos, tipos y reglas de negocio.
- 02Define identidad, permiso y respuesta mínima por operación.
- 03Fija límites didácticos y respuesta ante conflicto.
- 04Diseña pruebas de campos protegidos y dos solicitudes simultáneas.
Ver 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.
06
Comprueba lo aprendido
Responde antes de abrir la explicación. Esta comprobación es opcional y no guarda una puntuación.
01¿CORS impide que un cliente llame directamente a la API?
No. La API necesita autenticación, autorización y validación independientes del navegador.
02¿Un esquema JSON comprueba disponibilidad?
No. Esa es una regla de negocio que debe verificarse con el estado actual y al confirmar la escritura.
Cómo demostrar el objetivo
Compara tu práctica con estos resultados. Si solo diseñaste una prueba, registra su resultado como esperado, no como observado.
- El contrato fija tipos, tamaños, campos permitidos y respuestas de error.
- Los casos cubren entrada inválida, campos internos y límites sin aceptar asignación de campos administrativos.
Qué debes recordar
- Validar formato no sustituye las reglas del negocio.
- La respuesta debe incluir solo los datos necesarios.
- Los límites protegen recursos y deben considerar identidad y operación.
Tu cuaderno · notas personales
Cuaderno local
Tus notas del contenido
Se guardan únicamente en este dispositivo. Puedes exportarlas cuando quieras.
Material de apoyo · descarga, glosario y referencias
Consulta las condiciones de reutilización de los recursos descargables. Procedencia y condiciones de uso.