[ DRF生成API文档drf-yasg ]


drf-yasg官方文档

如果你想为一个新项目添加Swagger/OpenAPI支持,你可能想看看drf-spectacular,这是一个积极维护的新库, 共享该项目的大部分目标,同时使用 OpenAPI 3.0 模式。

OpenAPI 3.0 在可以描述的 API 类型方面提供了比 2.0 更大的灵活性。 不太可能很快(如果有的话)获得对OpenAPI 3.0的支持。drf-yasg

一. 安装

pip install -U drf-yasg

此外,如果要使用内置验证机制(请参阅 4.验证),您需要安装 一些额外的要求:
pip install -U drf-yasg[validation]

二. 配置

在: settings.py

INSTALLED_APPS = [
   ...
   'django.contrib.staticfiles',  # 必须的css/js文件
   'drf_yasg',
   ...
]

在:urls.py

...
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="Snippets 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'),
   re_path(r'^swagger/$', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
   re_path(r'^redoc/$', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),
   ...
]