Estructura y guía de capítulos#

Este es el artículo número 2 de la serie de tutoriales de Django Ninja.
En el artículo anterior conversamos sobre la orientación general de la serie. Ahora, iré un paso más allá para detallarte la estructura de la serie y la organización de cada capítulo.
Podría decirse que este artículo es el mapa de ruta de toda la serie.
Por lo general, las introducciones a la estructura suelen incluirse en la segunda mitad del primer artículo (cuando las hay), pero he decidido dedicarle un artículo independiente.
La razón no es otra que el haber dedicado un esfuerzo considerable al diseño de esta estructura pedagógica, con el deseo de ofrecer a los lectores una visión global completa. Esto te ayudará a ubicarte rápidamente y a saber exactamente en qué parte del tema te encuentras aprendiendo.
Sin más preámbulos, pasemos a la presentación.
Proyecto de ejemplo en GitHub#
Esta serie se divide en ocho capítulos; únicamente el tercer capítulo está subdividido en secciones, debido a la amplitud de su contenido.
A continuación se presentan los capítulos. (Los títulos y contenidos de cada artículo aún podrían tener pequeños ajustes, pero la estructura general se mantendrá).
Capítulo 1: introducción y presentación de Django Ninja#
El capítulo inicial presenta el propósito y la orientación de esta serie, los lectores a los que va dirigida y las razones para aprender Django Ninja.
En el artículo de estructura, se explica la organización y composición de la serie, el contenido principal de cada artículo y el orden de aprendizaje.
Por último, se presentan a los lectores los conceptos fundamentales de Django Ninja y Django REST framework, incluyendo su posicionamiento, semejanzas y diferencias.
- Artículo 1: Introducción a la serie × Público objetivo
- Artículo 2: Estructura y guía de capítulos (este artículo)
- Artículo 3: Introducción a Django Ninja — Principales diferencias con Django REST framework
Capítulo 2: proyecto de ejemplo y configuración del entorno#
Presenta el proyecto de ejemplo de la serie: Django-Ninja-Tutorial, utilizando cambios de código concretos como referencia durante el proceso de aprendizaje. (Si consideras que el proyecto está bien elaborado, ¡no dudes en dejar tu 🌟! 🥰)

El código de ejemplo es un excelente compañero para aprender nuevas tecnologías y también representa el fruto de mi arduo trabajo 😭
También presentaremos las herramientas de desarrollo de Python utilizadas en el proyecto, permitiendo a los lectores experimentar un entorno de desarrollo real.
Por último, te guiaremos paso a paso para que el proyecto pueda ejecutarse en tu entorno local.
- Artículo 4: Introducción al proyecto de ejemplo de API
- Artículo 5: Introducción a las herramientas modernas de desarrollo en Python
- Artículo 6: Configuración del entorno × Cómo utilizar este proyecto
Capítulo 3: fundamentos de Django Ninja#
La parte central de Django Ninja: los conocimientos fundamentales que todo desarrollador de API necesita dominar.
Este capítulo se divide en tres secciones principales: rutas, solicitudes y respuestas.
Sección 1: rutas (Routers)#
Los endpoints y las rutas son el punto de partida de una API.
La forma de configurar rutas en Django Ninja difiere sustancialmente de la forma tradicional de Django. Por ello, ubicamos las rutas en primer lugar como puerta de entrada al aprendizaje del desarrollo de API.
- Artículo 7: Rutas (Parte 1) Enfoque tradicional de rutas en Django
- Artículo 8: Rutas (Parte 2) Configuración de rutas en Django Ninja
Sección 2: solicitudes (HTTP Request)#
Tras las rutas vienen las solicitudes HTTP, donde se abordan los tres pilares del manejo de solicitudes en Django Ninja: parámetros de ruta, parámetros de consulta y cuerpo de la solicitud (body).
Entre ellos, el más importante es el body, para el cual se utilizará el Schema de Django Ninja (es decir, Pydantic BaseModel) para la recepción y validación de datos.
- Artículo 9: Solicitudes (1) Cómo maneja Django Ninja las solicitudes HTTP
- Artículo 10: Solicitudes (2) Parámetros de ruta - Path Parameters
- Artículo 11: Solicitudes (3) Parámetros de consulta - Query Parameters
- Artículo 12: Solicitudes (4) Request Body e introducción a Schema
Sección 3: respuestas (HTTP Response)#
Tras las solicitudes vienen las respuestas. Las respuestas también requieren el uso de Schema, pero presentan mayor variabilidad que las solicitudes.
En esta sección se explicará la estructura básica de las respuestas, los métodos de procesamiento, los Schema anidados y los métodos Resolver.
- Artículo 13: Respuestas (1) Cómo maneja Django Ninja las respuestas HTTP
- Artículo 14: Respuestas (2) Uso de Schema para construir respuestas con estructuras anidadas
- Artículo 15: Respuestas (3) ¿Por qué no usar ModelSchema? — Las razones por las que prefiero Django Ninja frente a DRF
- Artículo 16: Respuestas (4) Métodos Resolver — Formateo de datos en campos
Capítulo 4: documentación de API#
Una vez dominado el manejo de solicitudes y respuestas en Django Ninja, la otra clave restante es la documentación de la API.
La calidad y legibilidad de la documentación de API son cruciales para sus usuarios. En este capítulo se abordará la aplicación de Django Ninja en la generación automatizada de documentación de API y se compartirán algunas de las que considero buenas prácticas.
- Artículo 17: Documentación de API (Parte 1) Guía práctica de documentación en Django Ninja
- Artículo 18: Documentación de API (Parte 2) Ejemplos de configuración y valores por defecto en Pydantic Field
Capítulo 5: validación de datos y manejo de errores#
La validación de datos y el manejo de errores atañen a la estabilidad y fiabilidad de la API. En este capítulo se explora cómo realizar de manera efectiva la validación de datos y la captura de errores en Django Ninja, así como proporcionar respuestas adecuadas y correctas.
- Artículo 19: Validación de datos (Parte 1) Validación de campo único con Pydantic
- Artículo 20: Validación de datos (Parte 2) Validación entre múltiples campos con Pydantic
- Artículo 21: Manejo de errores (Parte 1) HttpError y respuestas HTTP personalizadas
- Artículo 22: Manejo de errores (Parte 2) Manejo global de errores — Uso de Exception Handlers
Capítulo 6: funcionalidades avanzadas de API#
A pesar de ser una guía de inicio, resulta necesario presentar funcionalidades avanzadas comunes en las API. Estas técnicas te ayudarán a afrontar los desafíos típicos de proyectos a gran escala.
Te guiaremos paso a paso en la implementación de cada función, al tiempo que nos enfocaremos en mostrar sus conceptos y escenarios de aplicación. Con base en este contenido, podrás profundizar y aplicarlas por tu cuenta.
- Artículo 23: Carga de archivos — Introducción a Django UploadedFile
- Artículo 24: Paginación (Parte 1) Paginador integrado de Django Ninja
- Artículo 25: Paginación (Parte 2) Clases de paginación personalizadas
- Artículo 26: Consulta y filtrado de datos (Parte 1) Introducción a FilterSchema
- Artículo 27: Consulta y filtrado de datos (Parte 2) Consultas de múltiples campos con FilterSchema
Capítulo 7: autenticación y pruebas unitarias#
Este capítulo presentará temas indispensables en proyectos backend. Aunque su núcleo no está implementado directamente por Django Ninja, son habilidades que todo desarrollador backend debe dominar.
- Artículo 28: Autenticación — Autenticación por Session y configuración global
- Artículo 29: Pruebas unitarias — Pruebas de API usando Test Client y pytest
Capítulo 8: retrospectiva de la serie y reflexiones al completar el desafío#
Una breve revisión de toda la serie, compartiendo mis reflexiones y experiencias sobre la creación de contenido durante este Ironman.
Conclusión#
A través de esta guía de navegación, has obtenido una comprensión clara de la estructura completa de la serie. Cada uno de los siguientes artículos seguirá este mapa de ruta para guiarte de forma progresiva en el aprendizaje de Django Ninja.
En el próximo artículo, presentaremos oficialmente Django Ninja y lo compararemos con el veterano Django REST framework, con el fin de conocer sus principales diferencias funcionales y sus escenarios de aplicación en el desarrollo de API.