Saltar al contenido
Logotipo de Trainontech Trainontech

Desarrollo Backend y APIs · BAC-111

Django REST Framework

Exponer un backend Django como API: serializadores, vistas genéricas, permisos, paginación y versiones

Bajo demanda Avanzado 7 módulos · 32 clases

Formato asíncrono Desarrollo Django, Python

Lo que aprenderás

  • Transformar modelos en representaciones JSON con serializadores, campos anidados y validación propia
  • Elegir entre APIView, vistas genéricas y ViewSet según la complejidad de cada endpoint
  • Configurar autenticación por token y por sesión, y clases de permiso a nivel de objeto
  • Aplicar paginación, filtrado y ordenación consistentes en todas las colecciones expuestas
  • Optimizar consultas del ORM en listados para que la serialización no dispare el número de accesos
  • Documentar la API generando un esquema OpenAPI y publicando una interfaz de prueba
  • Probar los endpoints con APIClient cubriendo permisos, códigos de estado y formato de errores

Contenido del curso

7 módulos · 32 clases en vídeo · práctica guiada en cada módulo

Módulo 1 · Presentación y punto de partida 4 clases
  • Cuándo un proyecto Django necesita una API
  • Instalación y configuración de Django REST Framework
  • La aplicación base sobre la que trabajaremos
  • Primer endpoint y navegador de la API
Módulo 2 · Serializadores 5 clases
  • Serializer frente a ModelSerializer
  • Campos, solo lectura y campos calculados
  • Relaciones: claves primarias, enlaces y anidamiento
  • Validación de campo y validación cruzada
  • Escritura en estructuras anidadas
Módulo 3 · Vistas y enrutado 5 clases
  • APIView y control total de la respuesta
  • Vistas genéricas para operaciones habituales
  • ViewSet y enrutadores automáticos
  • Acciones adicionales en un ViewSet
  • Cuándo bajar de nivel de abstracción
Módulo 4 · Autenticación y permisos 5 clases
  • Autenticación por sesión, por token y con JWT
  • Clases de permiso integradas
  • Permisos a nivel de objeto
  • Limitación de tasa por usuario y por anónimo
  • Errores de autorización y qué devolver
Módulo 5 · Colecciones grandes 4 clases
  • Paginación por número de página, por desplazamiento y por cursor
  • Filtros con django-filter
  • Búsqueda y ordenación
  • Rendimiento de listados y conteo de consultas
Módulo 6 · Contrato, esquema y versiones 5 clases
  • Generar el esquema OpenAPI
  • Publicar documentación navegable
  • Estrategias de versión de la API
  • Cambios compatibles y cambios que rompen
  • Formato uniforme de errores
Módulo 7 · Pruebas y proyecto de cierre 4 clases
  • Pruebas de endpoints con APIClient
  • Pruebas de permisos y de casos límite
  • Datos de prueba y aislamiento entre pruebas
  • Proyecto: API completa documentada y cubierta por pruebas

Requisitos

  • Experiencia construyendo aplicaciones con Django: modelos, vistas y migraciones
  • Conocimiento sólido de HTTP, REST y formatos JSON
  • Manejo de entornos virtuales y de pruebas automatizadas en Python

Descripción

Cuando una aplicación Django deja de servir HTML y pasa a alimentar una aplicación móvil o un frontend independiente, aparecen problemas nuevos: qué campos exponer, cómo validar entrada sin formularios, quién puede modificar cada objeto y cómo evolucionar la API sin romper a los clientes ya desplegados. Django REST Framework da respuesta a todo eso, pero ofrece varios caminos para lo mismo.

El curso construye la API de una aplicación existente resolviendo esas decisiones una a una. Se empieza por serializadores explícitos, se avanza hacia vistas genéricas y enrutadores, y se añaden permisos por objeto, limitación de tasa, filtros y paginación. Se mide el número de consultas de cada listado y se corrige con select_related y prefetch_related. Cada endpoint se acompaña de sus pruebas.

El cierre es una API documentada con esquema OpenAPI, con versión y con una batería de pruebas que protege el contrato. Desde ahí, el paso siguiente natural es la seguridad de APIs, el diseño de contratos con especificación primero o la integración con clientes generados automáticamente.

¿Para quién es este curso?

  • Equipos de desarrollo que separan un frontend o una aplicación móvil de un backend Django ya existente
  • Perfiles backend Python que deben exponer datos a terceros con permisos finos
  • Personas que mantienen una API interna y necesitan versionarla sin romper a sus consumidores
Bajo demanda

Curso diseñado con la ficha cerrada. Se produce al confirmarse un grupo o un contrato.

Código
BAC-111
Nivel
Avanzado
Público
Desarrollo
Entorno
Django, Python

Este curso incluye

  • 32 clases en vídeo bajo demanda
  • Práctica en entornos web y simuladores, sin instalar nada
  • Tutorización en el campus
  • Acceso desde móvil, tableta y ordenador
  • Actualizaciones cuando cambia la versión de la herramienta
  • Certificado de finalización

Sigue aprendiendo

Cursos relacionados

Bajo demanda

BAC-113Desarrollo Backend y APIs

FastAPI: APIs asíncronas y documentadas

Tipado con Pydantic, documentación automática, dependencias y concurrencia real.

FastAPIPythonDocker

Avanzado 33 clases

Próximamente

BAC-121Desarrollo Backend y APIs

NestJS: backend TypeScript estructurado

Módulos, inyección de dependencias y arquitectura por capas para equipos que vienen de Java o C#.

NestJSTypeScript

Avanzado 32 clases

Bajo demanda

BAC-130Desarrollo Backend y APIs

Spring Boot con Java

Inyección de dependencias, JPA, seguridad y configuración del marco dominante en el mundo corporativo.

Spring BootJava

Avanzado 36 clases