Elegir espacio

Dos espacios

¿Qué quieres consultar?

Elige el espacio al que quieres entrar.

Biblioteca FastAPIPrimera API

Práctica extendida · Bloque 2

EX-B2-S02

Incidentes en una API de reparaciones

Una API pequeña arranca, pero interpreta mal entradas, acepta estados imposibles, devuelve errores incompatibles y filtra datos de taller.

  • Escribir y ejecutar código
  • Serie de diagnóstico
  • Media-alta
  • Apoyo progresivo
  • Starter ejecutable

Cómo abordarla

Aplicación progresiva sobre una base ejecutable

Mantén el mismo workspace entre partes y cierra cada checkpoint con código ejecutable, pruebas y una respuesta HTTP o traza.

Abrir práctica extendida: base común y 4 partes

Base común

  • Cada parte corrige una frontera y añade una regresión.
  • No se permite una reescritura total: primero se demuestra la causa.
  • El estado continúa en memoria y todas las personas y referencias son sintéticas.

Paquete de trabajo

Entorno, evidencia y reinicio

Entorno: Workspace temporal con una aplicación FastAPI deliberadamente defectuosa y datos sintéticos.

  • Cuatro checkpoints de reparación.
  • Registro de hipótesis, cambios mínimos y regresiones.

Revisión: con Codex, utilizando los artefactos y criterios de cada parte; no se publica una solución oficial.

Reinicio: Restaurar el starter descargado y repetir desde la petición que reproduce el incidente.

Parte 1 · Apoyo alto

EX-B2-S02-P1 · Entradas en la fuente equivocada

Corregir path, query y header a partir del tráfico observado.

Qué debes hacer
  1. Clasifica dos fallos como enrutado o extracción.
  2. Modifica firmas y orden con el cambio mínimo.
  3. Añade peticiones de regresión.
Entrega esperada
  • Checkpoint P1
  • incident-log-p1.md
Criterios de aceptación
  • La causa se reproduce antes de editar.
  • OpenAPI y tráfico esperado coinciden.
Evidencia para revisión
  • Reproducción de los fallos de fuente.
  • OpenAPI corregido sin cambios de dominio.

Reinicio de esta parte: Conservar el checkpoint anterior fuera del starter o volver a descomprimir una copia limpia para repetir esta parte.

Pista
  • Una respuesta 404 no demuestra un fallo de validación.

Parte 2 · Apoyo moderado

EX-B2-S02-P2 · La frontera de validación

Reubicar restricciones, enums y una relación de fechas.

Qué debes hacer
  1. Separa reglas de campo, modelo y negocio.
  2. Cierra el vocabulario de estados.
  3. Demuestra tres errores con ubicaciones diferentes.
Entrega esperada
  • Checkpoint P2
  • validation-evidence.md
Criterios de aceptación
  • No hay estado externo en validadores.
  • Las reglas cruzadas se ejecutan sobre datos ya tipados.
Evidencia para revisión
  • Errores Pydantic localizables.
  • Matriz de reglas antes/después.

Reinicio de esta parte: Conservar el checkpoint anterior fuera del starter o volver a descomprimir una copia limpia para repetir esta parte.

Pista
  • Usa `Field` antes de escribir lógica imperativa.

Parte 3 · Apoyo ligero

EX-B2-S02-P3 · Contrato de excepciones

Unificar conflictos, ausencias y validación sin perder señal.

Qué debes hacer
  1. Define códigos estables y status por condición.
  2. Implementa manejadores proporcionados.
  3. Verifica que la respuesta no refleja excepciones internas.
Entrega esperada
  • Checkpoint P3
  • error-contract.md
Criterios de aceptación
  • Cada condición tiene una única forma pública.
  • La validación conserva localización.
Evidencia para revisión
  • Errores públicos equivalentes por condición.
  • Ausencia de detalles internos en respuestas.

Reinicio de esta parte: Conservar el checkpoint anterior fuera del starter o volver a descomprimir una copia limpia para repetir esta parte.

Pista
  • El texto humano puede cambiar; el código de error no debería.

Parte 4 · Apoyo autónomo

EX-B2-S02-P4 · Filtrado y regresión final

Cerrar la fuga de salida y probar el contrato completo.

Qué debes hacer
  1. Predice qué campos pertenecen a cada respuesta pública y qué fuga debe detectar la regresión.
  2. Define y aplica contratos de salida por operación sin modificar las rutas existentes.
  3. Ejecuta la matriz de incidentes completa desde un estado limpio y conserva el caso negativo de exposición.
  4. Compara OpenAPI y respuestas antes/después y explica dónde termina esta reparación.
Entrega esperada
  • Checkpoint P4
  • openapi-final.json
  • regression-report.md
Criterios de aceptación
  • El campo interno no aparece en respuestas ni schemas públicos.
  • Todas las regresiones anteriores siguen pasando.
Evidencia para revisión
  • Regresión que falla antes y pasa después.
  • OpenAPI final sin campos internos.

Reinicio de esta parte: Conservar el checkpoint anterior fuera del starter o volver a descomprimir una copia limpia para repetir esta parte.