Introducción al proyecto de ejemplo de API#

Este es el artículo número 4 de la serie de tutoriales de Django Ninja.
En el primer capítulo, realizamos una presentación integral de Django Ninja y analizamos sus principales diferencias con Django REST framework.
Confío en que ya cuentas con una buena comprensión sobre Django Ninja.
A continuación, ingresaremos al segundo capítulo: Presentación y configuración del proyecto.
Puntos clave de este capítulo#
A través de un proyecto de ejemplo de una API CRUD, te ayudaremos a aplicar los conceptos de Django Ninja en la práctica.
En este capítulo se presentará el concepto del proyecto, incluyendo el diseño de modelos y su correspondencia con el mundo real (artículo 4).
Posteriormente, presentaremos las herramientas de desarrollo de Python utilizadas en el proyecto (artículo 5). Por último, te guiaremos paso a paso para instalar el proyecto en tu máquina local y asegurarnos de que funcione correctamente (artículo 6).
El resto del código referente a la API se presentará e implementará paulatinamente a partir del tercer capítulo.
Proyecto de ejemplo en GitHub#
Foro Ninja#
Para facilitarte la comprensión de Django Ninja y permitirte realizar operaciones prácticas, diseñamos un proyecto de ejemplo: Foro Ninja.
Este es un foro de discusión pensado para que los desarrolladores intercambien experiencias sobre el uso de Django Ninja (y no sobre cómo convertirse en ninjas).

Aquí tienes la URL de GitHub del proyecto; puedes agregarla a tus marcadores para consultar el código en cualquier momento y reforzar lo aprendido.
Este proyecto te guiará en cómo construir API utilizando Django Ninja, mostrando sus conocimientos y buenas prácticas.
Filosofía de diseño#
El tema del proyecto es el «Foro Ninja», un sistema básico de foro de discusión con las funciones esenciales para que los usuarios publiquen artículos y dejen comentarios.
Este diseño es sencillo y práctico a la vez, lo que te permite enfocarte en el núcleo de Django Ninja sin distraerte con demasiadas funciones secundarias.
Las dos funcionalidades fundamentales del foro constituyen el enfoque principal de la implementación de nuestra API:
- Sistema de usuarios: Los usuarios pueden registrarse, iniciar sesión, cerrar sesión y consultar sus propios artículos.
- Sistema de publicaciones: Los usuarios pueden crear, modificar y eliminar artículos.
A través de este proyecto, aprenderás a construir rápidamente las API correspondientes utilizando Django Ninja.
Nos enfocaremos con eje en la «publicación de artículos» para ir implementando gradualmente diferentes API.
Tres principios de diseño#
Como proyecto de «ejemplo», el propósito del diseño del Foro Ninja es permitirte comprender a fondo los conceptos básicos y aplicaciones de Django Ninja mediante operaciones prácticas.
Por ello, mantendremos el contenido del proyecto estrictamente acotado al alcance requerido por la enseñanza, garantizando un enfoque claro en el aprendizaje sin interferencias causadas por exceso de detalles.
En pocas palabras, el proyecto sigue estos tres principios de diseño:
1. Principio de diseño minimalista#
El llamado «diseño minimalista» consiste en asegurar en la medida de lo posible que todas las implementaciones sean indispensables para la enseñanza.
Incluso reutilizaremos una misma API como ejemplo para demostrar la implementación de funcionalidades en distintas etapas.
Un diseño de este tipo permite mantener conciso el contenido didáctico, al tiempo que permite profundizar de manera progresiva en las diversas características de Django Ninja.
2. Estructura de código simple y comprensible#
La estructura del código del proyecto de ejemplo debe ser clara y directa, de modo que los lectores puedan comprender rápidamente la lógica y las relaciones entre cada parte.
En comparación con proyectos de trabajo reales, el proyecto de ejemplo prioriza la claridad y la legibilidad inmediata del código, evitando diseños complejos o niveles de abstracción innecesarios.
Esto significa que:
- No introduciremos una división excesiva de componentes ni diseños altamente modularizados; en su lugar, mostraremos directamente las funciones.
- La implementación de cada función buscará ser sencilla, enfocándose en cómo lograrla.
Un diseño así te permitirá comprender rápidamente la función de cada fragmento de código y aplicarlo fácilmente a tus propios proyectos.
3. Entorno fácil de usar#
El proyecto de ejemplo requiere un entorno sencillo y fácil de usar, donde quienes aprenden puedan ejecutar inmediatamente el proyecto y probar lo aprendido.
Los proyectos laborales involucran muchas dependencias externas, pero el diseño del proyecto de ejemplo se enfoca en permitir verificar rápidamente los conceptos aprendidos.
Esto significa que:
- El proyecto no depende de un despliegue complejo; solo requiere una configuración local sencilla para ejecutarse y probarse rápidamente, permitiendo a los lectores ver de inmediato los resultados devueltos por la API.
Nos mantenemos enfocados en la enseñanza de la API en sí; es posible que debas practicar y completar por tu cuenta el resto de los aspectos externos.
Siguiente paso#
Tras comprender el diseño del proyecto de ejemplo, a continuación pasaremos a la introducción al entorno de desarrollo.
Al desarrollar un proyecto, las herramientas adecuadas permiten multiplicar la eficiencia con la mitad de esfuerzo. El próximo artículo presentará las herramientas de desarrollo de Python de uso común, como la gestión de entornos virtuales y el formateo de código.
Estas herramientas no solo te ayudarán a gestionar tus proyectos eficientemente, sino que también elevarán enormemente la calidad y coherencia de tu código. Estoy convencido de que dominar estas herramientas es una habilidad fundamental para todo desarrollador moderno.