Práctica · Bloque 2
Construye una primera frontera HTTP fiable
Arranque, fuentes de entrada, Pydantic, respuestas, errores y documentación observable.
Starter, código, ejecución y evidencia
La actividad principal ocurre en el editor
Descarga el starter, ejecuta el baseline, modifica la API y conserva una prueba positiva y otra negativa. Las pocas actividades de análisis están marcadas de forma explícita; no cuentan como implementación.
Unidad 2.1 · Ensayo y checkpoint
Pon en marcha y diagnostica la ruta
La aplicación importa, la ruta correcta responde y puedes explicar el orden de coincidencia.
- La aplicación que Uvicorn no puede importarUn compañero ejecuta `uv run uvicorn app.main:app --reload`, pero el proceso termina antes de abrir el puerto.Abrir
- «me» no es un identificador`GET /records/me` entra en `/records/{record_id}` y devuelve el registro cuyo id literal es «me».Abrir
Antes y después de practicar
Antes: Antes de ejecutar, predice método, ruta, status, body y dónde debería aparecer la operación en OpenAPI.
Transferencia: Explica qué evidencia distinguiría un fallo de importación, un 404 y un 405 en otra aplicación.
Unidad 2.2 · Ensayo y checkpoint
Coloca cada dato donde expresa mejor su intención
Distingues path, query, header, cookie, body, formulario y archivo, incluida la ausencia frente a null.
- ¿Path, query, header o body?Un requisito mezcla identificador, paginación, correlación, modo de simulación y datos de creación sin decidir su lugar en HTTP.Abrir
- Correlación en header, preferencia en cookieSoporte necesita rastrear cada petición y la interfaz recuerda un modo de visualización no sensible.Abrir
- JSON, formulario o archivoTres historias de usuario requieren crear un expediente, iniciar sesión mediante formulario y adjuntar un PDF con metadatos.Abrir
- Ausente no significa nullUn PATCH borra el título cuando el cliente no lo envía porque el código solo mira el valor final `None`.Abrir
Antes y después de practicar
Antes: Clasifica identificador, filtro, correlación y representación antes de mirar una firma FastAPI.
Transferencia: Ante un requisito nuevo, justificas la fuente HTTP y la semántica de ausencia antes de escribir código.
Unidad 2.3 · Ensayo y checkpoint
Haz explícitas las reglas del modelo
El modelo acepta, normaliza o rechaza con reglas localizables y separa entrada, actualización y salida.
- Field, field_validator o model_validatorUn modelo concentra patrón, normalización, fechas cruzadas y duplicados en un único `model_validator`.Abrir
- Expediente anidado y vocabulario cerradoLos payloads mezclan datos del responsable, estado libre y documentos sin estructura, lo que produce errores difíciles de localizar.Abrir
- Un modelo no sirve para todoLa API usa `Record` para crear, actualizar y responder: el cliente puede enviar `id` y la salida publica `internal_note`.Abrir
Antes y después de practicar
Antes: Predice qué reglas dependen de un campo, de varios campos o de quién puede enviar cada dato.
Transferencia: Puedes diseñar los modelos de otro recurso explicando propiedad, opcionalidad y reglas entre campos.
Unidad 2.4 · Ensayo y checkpoint
Alinea salida, errores y OpenAPI
Status, headers, body, filtrado y documentación cuentan la misma historia pública.
- La respuesta filtra demasiado pocoUna respuesta devuelve el diccionario interno completo, incluidos `audit_token` y `owner_email`.Abrir
- Tres formas de decir el mismo conflictoTres endpoints expresan una referencia duplicada con texto, `detail` arbitrario y status `200`.Abrir
- Traducir 422 sin borrar la ubicaciónUn manejador personalizado responde `Invalid request` para cualquier error y soporte ya no sabe qué campo falló.Abrir
- Creado significa 201 y tiene ubicaciónLa creación funciona, pero devuelve `200`, no indica dónde quedó el recurso y documenta un modelo distinto.Abrir
- Revisión de PR desde OpenAPIUn PR afirma implementar creación y consulta, pero el diff, los requisitos y el OpenAPI generado no coinciden.Abrir
Antes y después de practicar
Antes: Antes de editar, compara qué prometen status, headers, body, modelo de salida y OpenAPI.
Transferencia: Puedes revisar otra API desde la perspectiva de un consumidor y detectar una promesa no cumplida.
Después de los ejercicios focalizados
Prácticas extendidas
Mantienen una base común durante varias transformaciones y permiten trabajar con más continuidad.
- Admisiones internas por contratoUn equipo necesita recibir solicitudes de admisión, consultar su estado y rechazar entradas incoherentes antes de incorporar persistencia.Abrir
- Incidentes en una API de reparacionesUna API pequeña arranca, pero interpreta mal entradas, acepta estados imposibles, devuelve errores incompatibles y filtra datos de taller.Abrir