Elegir espacio

Dos espacios

¿Qué quieres consultar?

Elige el espacio al que quieres entrar.

Biblioteca FastAPIComposición

Práctica focalizada · Bloque 3 · Unidad 3.2

EX-B3-03

Construir y observar un árbol de dependencias

Dos ramas de una consulta de informes repiten headers y normalización de correlación. El contrato funciona, pero no permite observar ni reutilizar el requisito común.

  • Escribir y ejecutar código
  • Laboratorio guiado
  • Media
  • Apoyo moderado
  • Starter ejecutable

Cómo abordarla

Haz visible el árbol y el ciclo de vida

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: OpenAPI conserva sus parámetros, la configuración falla pronto y el recurso se libera tanto en éxito como en error.

Abrir laboratorio de código

1. Descarga y arranca

2. Escribe y prueba

  1. Ejecuta el baseline, inspecciona OpenAPI y dibuja el árbol que esperas.
  2. Extrae una hoja de correlación y dos proveedores que la compartan; inyecta sus valores de forma explícita.
  3. Añade una traza controlada y un test que pruebe una ejecución de la hoja en una petición y otra ejecución en la siguiente.
  4. Repite la regresión y compara los parámetros públicos antes y después.

3. Demuestra el comportamiento

  • Código refactorizado y tests añadidos.
  • Árbol previsto frente a traza observada.
  • Fingerprint de parámetros OpenAPI y salida de pytest antes/después.

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é nodo debe ser común a ambas ramas, qué valor entrega cada proveedor y qué evidencia distingue la caché de una ejecución accidental?

Contrato que el árbol no debe ocultar

Baseline: GET /reports exige X-Correlation-Id y X-Organization-Id, acepta page_size entre 1 y 100 y devuelve la misma representación pública.

Comprueba estas tres cosas

  1. ¿Qué header y query deben seguir apareciendo en OpenAPI?
  2. ¿Qué hoja comparten el contexto de consulta y el de auditoría?
  3. ¿Qué cambia al enviar una segunda petición?

Anota predicción, comando ejecutado y diferencia observada; el código vive en tu workspace.

Sin respuesta guardada.

Pistas opcionales

Pista 1 · Empieza por la hoja
  • Las dos ramas necesitan el mismo valor de correlación ya validado.
  • El resultado de una dependencia puede alimentar otra dependencia igual que alimenta una operación.
Pista 2 · Prueba dos escalas
  • Una aserción dentro de una petición prueba reutilización.
  • Otra petición debe probar que la caché anterior ya no existe.
Profundización opcional

Extraer un árbol pequeño con una subdependencia compartida y demostrar su caché por petición sin alterar el contrato HTTP u OpenAPI.

Contexto adicional

  • Conserva status, body, nombres de parámetros y validaciones públicas.
  • Usa Annotated para declarar valores concretos; no inyectes un diccionario contenedor.
  • No uses use_cache=False: la capacidad objetivo es observar el comportamiento por defecto.

Decisiones abiertas

  • Puedes ubicar los proveedores junto al router o en un módulo propio; justifica la dirección de imports.
  • Puedes trazar con una lista, un contador o un fake, siempre que la prueba restaure su estado.

Cómo revisar tu respuesta

  • El header X-Correlation-Id, X-Organization-Id y page_size conservan nombre, obligatoriedad y límites.
  • La hoja compartida se ejecuta una vez dentro de una petición aunque dos ramas la necesiten.
  • Una segunda petición produce una nueva ejecución; no existe caché entre peticiones.
  • La operación recibe valores tipados y no busca nombres dentro de un contenedor genérico.
  • Todos los tests de contrato permanecen verdes.

Evidencia, revisión y reinicio

  • Árbol previsto y traza real de resolución para dos peticiones.
  • OpenAPI y tests HTTP antes y después de extraer los proveedores.
  • Test que demuestra una sola ejecución de la subdependencia compartida por petición.

Revisión: con Codex, utilizando la evidencia y los criterios anteriores; no se publica una solución oficial.

Reinicio: Volver a descomprimir ex-b3-03-dependency-tree.zip; el paquete no usa red, base de datos ni estado externo.