Django REST Framework Yet Another Swagger Generator (drf-yasg)

1.21.15 · active · verified Thu Apr 09

drf-yasg is a powerful tool for automated generation of real Swagger/OpenAPI 2.0 schemas directly from Django Rest Framework code. It simplifies API documentation by integrating Swagger UI and ReDoc into Django projects. The current version is 1.21.15, and the project maintains an active release cadence with frequent updates and bug fixes.

Warnings

Install

Imports

Quickstart

To quickly integrate drf-yasg, add 'drf_yasg' to your `INSTALLED_APPS` in `settings.py`. Then, include these URL patterns in your project's `urls.py`. This setup provides endpoints for the OpenAPI schema in JSON/YAML, the interactive Swagger UI, and the ReDoc documentation.

from django.urls import path, re_path
from rest_framework import permissions
from drf_yasg.views import get_schema_view
from drf_yasg import openapi

schema_view = get_schema_view(
   openapi.Info(
      title="My API",
      default_version='v1',
      description="Test description",
      terms_of_service="https://www.google.com/policies/terms/",
      contact=openapi.Contact(email="contact@snippets.local"),
      license=openapi.License(name="BSD License"),
   ),
   public=True,
   permission_classes=(permissions.AllowAny,),
)

urlpatterns = [
   re_path(r'^swagger(?P<format>\.json|\.yaml)$', schema_view.without_ui(cache_timeout=0), name='schema-json'),
   path('swagger/', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
   path('redoc/', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),
]

view raw JSON →