Saltar al contenido
🐍 Curso de Python
/

Módulo 5

APIs REST

Las dos caras de una API: consumirlas bien, con sus errores y sus límites, y escribirlas con Django REST Framework y con FastAPI, hasta dejarlas documentadas y desplegadas.

📚 30 lecciones ⏱ 480 min en total
  1. 1Qué es una API RESTLa misma información en 315 KB o en 6,8 KB, y por qué la segunda forma es la que permite que dos programas se entiendan.14 min
  2. 2HTTP para APIsLos códigos que de verdad devuelven, el cuerpo de error que cada API se inventa por su cuenta, y la petición que ahorra seis mil bytes y gasta cuota igual.15 min
  3. 3JSONLos cuatro tipos de Python que se transforman en otra cosa sin avisar, el precio que sale a 199,89999999999998, y las fechas que JSON no sabe guardar.15 min
  4. 4Consumir APIs con la biblioteca estándarTres líneas para la primera petición, treinta para una que aguante, y la excepción que en realidad es una respuesta.14 min
  5. 5requests desde ceroVeinticinco líneas convertidas en una, la sesión que va casi tres veces más rápido, y el `if respuesta:` que parece correcto y se traga los errores.15 min
  6. 6Parámetros, cabeceras y cuerposEl filtro que desaparece sin dejar rastro, el booleano que llega con mayúscula, y los cuatro cuerpos que se pueden mandar.14 min
  7. 7Autenticación: claves, tokens y OAuthSesenta peticiones por hora contra cinco mil, el token que cualquiera puede leer, y el secreto que sobrevive a una redirección.16 min
  8. 8Errores y reintentosEl reintentador que no reintenta, el primer reintento que no espera nada, y la excepción que te esconde el cuerpo del error.15 min
  9. 9Paginación y límites de usoCuatro formas de pedir la página siguiente, la fila que se lee dos veces, y el 403 que no trae Retry-After y por tanto tu reintentador ignora.15 min
  10. 10Proyecto: un cliente de una API públicaCuatro capas, veintitrés pruebas sin tocar internet, y dos sorpresas: un fallo que encontró la suite y un número que dice la verdad y miente.22 min
  11. 11Diseñar los recursos y las rutasLas decisiones que hay que tomar antes de escribir una línea, y por qué la API no debe parecerse a tus tablas.14 min
  12. 12Instalación y primer punto de accesoUna API funcionando en veinte líneas, y las tres cosas que trae apagadas de fábrica: una de ellas deja que cualquiera borre tus datos.16 min
  13. 13SerializadoresLa pieza central de DRF, los tres sitios donde validar, y el `PATCH` con una errata que contesta 200 sin cambiar nada.16 min
  14. 14ModelSerializer y relacionesCuatro líneas que generan once campos, y el listado que pasa de 2 consultas a 399 por enseñar el nombre de la editorial.17 min
  15. 15Vistas de API y genéricasCuatro capas de abstracción, los diez renglones que hay detrás de cada una, y el `201` al que le falta una cabecera.16 min
  16. 16ViewSet y enrutadoresUna clase por recurso, las acciones que no caben en los cinco verbos, y el dinero que vuelve a ser un número en cuanto te saltas el serializador.16 min
  17. 17Autenticación con tokens y JWTEl token que se guarda en claro y no caduca, el JWT que consulta la base de datos igual que él, y la palabra que hay que escribir para que te dejen entrar.17 min
  18. 18PermisosEl permiso de objeto que no se llama en el listado, y la acción propia por la que un desconocido borra la reseña de otro.17 min
  19. 19Filtros, búsqueda y ordenaciónEl filtro con una errata que devuelve las doscientas filas creyendo que filtró, y la búsqueda que no encuentra a Óscar si lo escribes en minúscula.16 min
  20. 20PaginaciónLas tres formas que trae DRF, la fila que aparece dos veces al recorrer un listado, y el contador que cuesta una consulta por página.15 min
  21. 21Documentar con OpenAPISetenta operaciones documentadas solas, ninguna con un error, y un campo que la documentación dice que es texto y devuelve una lista.15 min
  22. 22Versionado y pruebasCómo cambiar una API sin romper a quien la usa, y las once pruebas de las cuales dos fallan a propósito.17 min
  23. 23Introducción a FastAPILa misma API en cincuenta líneas, diez veces más rápida serializando, y el error de validación que te devuelve la contraseña que acabas de rechazar.16 min
  24. 24Rutas y parámetrosCómo decide FastAPI de dónde sale cada dato, la ruta que deja de funcionar por declararla en el orden equivocado, y la anotación que impide publicar una contraseña.15 min
  25. 25Pydantic y validaciónLo que convierte en silencio, la palabra `yes` que vale y `sí` que no, y la línea que arregla el fallo de la lección 13.16 min
  26. 26Base de datos y asincroníaMontar el ORM que FastAPI no trae, y la medida que enseña que escribir `async` mal es siete veces peor que no escribirlo.18 min
  27. 27Autenticación en FastAPITodo a mano y en cuarenta líneas, los 86 milisegundos que paran el servidor, y el argumento sin el cual PyJWT se niega a funcionar.17 min
  28. 28Pruebas y documentaciónSustituir una dependencia en una línea, la base de datos nueva para cada prueba, y el esquema que no puede mentir.15 min
  29. 29Desplegar una APIDos cabeceras donde Django ponía seis, el número de trabajadores que no es el de siempre, y el arranque que se ejecuta una vez por proceso.16 min
  30. 30Proyecto final: una API completaReunir las veintinueve lecciones en una API que funciona, con los fallos silenciosos del curso ya cerrados, y el bucle infinito que apareció al montarla.20 min