Práctica focalizada · Bloque 2 · Unidad 2.2
EX-B2-05
JSON, formulario o archivo
Tres historias de usuario requieren crear un expediente, iniciar sesión mediante formulario y adjuntar un PDF con metadatos.
Cómo abordarla
Coloca cada dato donde expresa mejor su intención
Ejecuta primero el baseline. Después modifica la frontera indicada, escribe una regresión positiva y otra negativa y conserva la salida real.
Evidencia objetivo: Distingues path, query, header, cookie, body, formulario y archivo, incluida la ausencia frente a null.
Abrir laboratorio de código
1. Descarga y arranca
- Starter ejecutable de cuerpos HTTPAPI parcial y tests para JSON, formulario y multipart con un rechazo por media type.
- Historias de transporteTres requisitos y ejemplos de clientes incompletos.
2. Escribe y prueba
- Clasifica las tres historias y dibuja el mensaje HTTP.
- Implementa los tres endpoints con `Body`, `Form`, `File` o `UploadFile` según proceda.
- Demuestra content types correctos y un caso rechazado.
3. Demuestra el comportamiento
- Tabla historia → media type → primitivas FastAPI con justificación.
- Tres firmas mínimas y sus mensajes HTTP representativos.
- Evidencia de aceptación y rechazo por `Content-Type`.
La respuesta principal es tu código y sus pruebas. Usa este espacio solo para anotar la predicción inicial y el resultado observado.
Predicción breve antes de ejecutar
¿Qué formato corresponde a cada historia y por qué no existe un body JSON separado junto a un archivo multipart?
Comprueba estas tres cosas
- ¿Qué comportamiento observas y qué parte es todavía una hipótesis?
- ¿Cuál es el cambio mínimo que permite verificar la causa o el contrato?
- ¿Qué evidencia conservarías para demostrar que no rompiste otra frontera?
Anota predicción, comando ejecutado y diferencia observada; el código vive en tu workspace.
Sin respuesta guardada.
Pistas opcionales
Pista 1 · Localiza la frontera
- Separa importación, enrutado, extracción, validación, operación y serialización.
- Lee el status, los headers y la ubicación del error antes de editar.
Pista 2 · Reduce la prueba
- Usa una petición válida y una inválida que difieran en una sola variable.
- Compara el comportamiento con `/openapi.json` cuando el contrato esté documentado.
Profundización opcional
Elegir media type y primitivas FastAPI adecuadas para JSON, form-urlencoded y multipart.
Contexto adicional
- Trabaja únicamente dentro del alcance del bloque: una aplicación pequeña y estado en memoria.
- No hay solución oficial publicada; el material contiene huecos y defectos deliberados.
- Justifica las decisiones por el mensaje HTTP y el contrato observable, no solo porque el código arranque.
Cómo revisar tu respuesta
- El archivo usa multipart y `UploadFile`.
- La creación estructurada normal usa JSON.
- No se promete JSON y multipart como dos cuerpos simultáneos.
Evidencia, revisión y reinicio
- Decisión razonada guardada localmente en la web.
- Código o informe ejecutable en el workspace temporal, más una captura de curl/OpenAPI cuando proceda.
Revisión: con Codex, utilizando la evidencia y los criterios anteriores; no se publica una solución oficial.
Reinicio: Eliminar el workspace temporal y volver a descargar el material inicial; no hay estado persistente externo.