Resumen

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?

  • Para cada recurso: GET, POST, PUT y DELETE con parámetros y respuestas esperadas.
  • Puedes agregar una descripción en el docstring de la clase, por ejemplo: "Obtiene la lista de citas médicas programadas" y se mostrará en la UI.
  • Ejemplo de estado típico: 204 No Response en un DELETE, porque no retorna contenido.

  • Beneficios prácticos.

  • Documentación viva y sincronizada con el código.
  • Pruebas rápidas con Try it out desde el navegador.
  • Compatibilidad con múltiples UIs gracias a OpenAPI.

¿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.