La documentación de API clara y actualizada impulsa integraciones rápidas y seguras. Con Django, django-rest y drf-spectacular puedes generar una documentación automatizada basada en OpenAPI que se actualiza con tu código, mostrando endpoints, parámetros, respuestas y ejemplos sin esfuerzo.
¿Cómo crear documentación de API actualizada con Django y drf-spectacular?
Generar la doc automáticamente asegura consistencia y ahorra tiempo. Cada cambio en vistas y views se refleja en la documentación sin mantenimiento manual.
- Objetivo: facilitar que otros sistemas y desarrolladores integren tu API sin fricción.
- Inspiración: revisa cómo lo hace Stripe para entender buenas prácticas.
- Ventaja clave: cuando modificas una vista, la documentación se actualiza sola.
¿Qué librerías y estándares intervienen?
- drf-spectacular: genera el schema OpenAPI desde tu código.
- Swagger: muestra la documentación como una página web interactiva con Try it out.
- Redoc: ofrece otra UI con buscador y navegación clara.
- OpenAPI: estándar que define endpoints, parámetros, respuestas y versiones en un archivo YAML.
¿Qué habilidades prácticas pones en juego?
- Crear una app dedicada a docs para compartir la documentación.
- Escribir descripciones con docstrings en clases de views (por ejemplo, listar citas médicas) para enriquecer el schema.
- Probar endpoints desde el navegador con Try it out, sin usar Postman o curl.
¿Qué configuración clave necesitas en settings y urls?
El flujo es simple: crear la app de documentación, instalar y registrar drf-spectacular, definir el autoschema y exponer rutas.
¿Cómo preparar la app y el autoschema?
- Crear una app llamada Docs enfocada en la documentación.
- Agregarla a installed apps en Settings.
- Registrar el autoschema de drf-spectacular en Settings, verificando que la variable no exista ya para evitar que Python tome la última configuración por error.
¿Cómo estructurar las rutas y los imports?
- Crear un archivo
urls.py en la app Docs con los endpoints de documentación.
- Importar los paths correctos y añadirlos al
urls.py del proyecto.
- Mantener el orden de importaciones en Python: primero librerías de terceros, luego código de tu app.
Código citado del proceso de imports:
from django.urls import path
- Evitar duplicar prefijos como "api" si ya están definidos en otras rutas del proyecto.
¿Qué ofrece Swagger y Redoc con OpenAPI?
Ambas UIs leen el schema OpenAPI para presentar endpoints, parámetros y ejemplos. Swagger además permite ejecutar pruebas con un clic.
¿Cómo funciona el archivo de schema?
- Al abrir la ruta de API schema, se descarga un archivo YAML con la versión de OpenAPI.
- Ese archivo describe todos los endpoints y la documentación agregada en el código Python.
- Cualquier UI compatible con OpenAPI (Swagger o Redoc) puede usar el mismo archivo.
¿Qué verás en la interfaz y cómo documentas respuestas?
¿Ya incorporaste descripciones en tus views? Comparte dudas o mejoras que quisieras ver en la documentación de tus endpoints y el flujo con Swagger o Redoc.