Elegir espacio

Dos espacios

¿Qué quieres consultar?

Elige el espacio al que quieres entrar.

Biblioteca FastAPIPrimera API

Práctica extendida · Bloque 2

EX-B2-S01

Admisiones internas por contrato

Un equipo necesita recibir solicitudes de admisión, consultar su estado y rechazar entradas incoherentes antes de incorporar persistencia.

  • Escribir y ejecutar código
  • Serie de implementación
  • Media
  • 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 3 partes

Base común

  • El identificador lo asigna el servidor y todo el estado vive en memoria.
  • La referencia pública, el departamento y el periodo se validan; no hay login ni base de datos.
  • Cada parte parte del checkpoint aceptado de la anterior.

Paquete de trabajo

Entorno, evidencia y reinicio

Entorno: Workspace temporal con Python 3.10+, uv, FastAPI y Pydantic 2; estado en memoria.

  • Tres checkpoints ejecutables y un OpenAPI por parte.
  • Matriz de peticiones válidas e inválidas con status, headers y body.

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

Reinicio: Eliminar el workspace de la serie y volver a descargar el starter; cada parte conserva un checkpoint separado.

Parte 1 · Apoyo alto

EX-B2-S01-P1 · Rutas y fuentes HTTP

Definir creación, consulta y listado con sus fuentes, obligatoriedad y status provisionales.

Qué debes hacer
  1. Implementa las tres operaciones sobre una lista en memoria.
  2. Declara correlación y paginación sin mezclarlas con el body.
  3. Compara firmas y OpenAPI con la matriz del starter.
Entrega esperada
  • Checkpoint P1
  • openapi-p1.json
  • evidence-p1.md
Criterios de aceptación
  • Métodos y rutas son coherentes con identidad y colección.
  • Las fuentes aparecen correctamente en OpenAPI.
  • No existe infraestructura fuera de alcance.
Evidencia para revisión
  • OpenAPI con las rutas y fuentes acordadas.
  • Cuatro peticiones curl que distingan path, query, header y body.

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

Pista · Diseña desde HTTP
  • Empieza por método, path y status; después escribe la firma.

Parte 2 · Apoyo moderado

EX-B2-S01-P2 · Modelos y reglas

Separar create, update y public; añadir enums, anidación y una regla cruzada.

Qué debes hacer
  1. Modela solicitante, periodo y estado.
  2. Ubica restricciones y validadores en el nivel adecuado.
  3. Implementa patch parcial conservando campos omitidos.
Entrega esperada
  • Checkpoint P2
  • model-matrix.md
  • invalid-cases.md
Criterios de aceptación
  • Los modelos de operación están separados.
  • La regla cruzada produce una localización útil.
  • El patch no pisa campos ausentes.
Evidencia para revisión
  • Modelos Pydantic y errores de muestras.
  • Diferencia demostrada entre omitido y null.

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

Pista · Propiedad de los campos
  • Marca primero quién asigna y quién puede modificar cada campo.

Parte 3 · Apoyo ligero

EX-B2-S01-P3 · Salida y errores

Cerrar el contrato observable con filtrado, estados, Location y errores consistentes.

Qué debes hacer
  1. Aplica modelos públicos a todas las respuestas.
  2. Añade `201` y `Location` a creación.
  3. Unifica not found, conflicto y validación.
  4. Documenta las respuestas adicionales.
Entrega esperada
  • Checkpoint P3
  • openapi-final.json
  • contract-evidence.md
Criterios de aceptación
  • No se filtran notas internas.
  • Errores y éxitos coinciden con OpenAPI.
  • La colección sigue siendo puramente en memoria.
Evidencia para revisión
  • Respuestas públicas, Location y errores uniformes.
  • OpenAPI final y regresión de filtrado.

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

Pista · Revisa como cliente
  • Inspecciona status, headers y body; no solo el valor devuelto por Python.