📰 Resumen SEO (meta-description)
Prepárate para el examen de Desarrollo Web con esta guía paso a paso sobre cómo crear, probar y documentar una API REST en Flask. Incluye ejemplos de código, preguntas tipo test, prácticas recomendadas y errores frecuentes.
1. ¿Qué entra exactamente?
Dispondrás de un mini-proyecto con Flask que simula una base de datos en memoria 👇
from flask import Flask, request, jsonify
app = Flask(__name__)
usuarios = [
{"id": 1, "nombre": "Juan", "email": "juan@example.com"},
{"id": 2, "nombre": "María", "email": "maria@example.com"}
]
# Rutas GET, POST, PUT, DELETE…
Objetivo del examen:
Añadir funcionalidades, refactorizar código y justificar cada decisión.
2. Checklist de competencias que evaluarán
Área | Dominio mínimo | Pregunta típica |
---|---|---|
HTTP | Verbos + códigos 2XX/4XX | «¿Por qué usas 201 en vez de 200?» |
Python | Generadores, list comprehension | «Explica next((u for u in usuarios…), None) » |
Flask | Decoradores, Blueprints, jsonify | «¿Qué hace @app.route ?» |
Testing | pytest y cliente de pruebas | «Escribe un test que verifique DELETE » |
Seguridad | JWT, CSRF, headers | «Añade auth básica al endpoint /usuarios» |
Tener claro este cuadro equivale al 60
a. Refactoriza Practica cada una y comenta tus soluciones en clase: ¡vas a aprender más corrigiendo al compañero que estudiando solo! “El código que no se prueba es un bug potencial.” Dedica la última media hora del examen a lanzar los tests, revisar logs y borrar todo ¡Mucho ánimo y a por la matrícula! 🎓🚀
3. Roadmap express en 5 pasos
git clone <repositorio> cd proyecto && python app.py
Crea services/user_service.py
y mueve ahí la lógica de usuarios.def test_get_usuarios(client): res = client.get("/usuarios") assert res.status_code == 200
Sólo permitir cambios parciales y comprobar que email
sea único.
Bonus de +0,5 si tu doc se abre en /docs
.
4. Errores frecuentes (¡no caigas!)
Usa g
o una factory con app context si el ejercicio lo complica.Content-Type: application/json
en las respuestas de error.jsonify
.pytest
.
5. Preguntas de examen simuladas
delete_usuario
para retornar 204 No Content.
b. Implementa una función que pagine /usuarios?limit=…&offset=…
.
c. ¿Cómo resolverías las condiciones de carrera si varios alumnos llaman a la API a la vez?
6. Recursos ultra-rápidos
7. Último consejo (de profe a alumno)
print
innecesario. Esa pulida final suele ser la diferencia entre un 7 y un 9,5.