django rest framework使用drf_yasg生成swaggers在线API文档

简介

企业中使用django rest framework开发比较常见的,对于前后端分离多人协作开发过程中,对于接口文档是非常的重要,能够避免非常高的沟通成本
大家在使用drf开发过程中有很多接口可以直接使用model和serializer直接完成,我下面介绍的drf_yasg也可以根据这些信息来自动生成接口文档,在对接成本上几乎很小

大家如果觉得该项目不错也可以给作者点个star喔

使用

支持的相关版本,最新支持请见drf-yasg

  • Django Rest Framework: 3.10, 3.11, 3.12
  • Django: 2.2, 3.0, 3.1
  • Python: 3.6, 3.7, 3.8, 3.9

安装

1
pip install -U drf-yasg

修改settings.py

1
2
3
4
5
6
INSTALLED_APPS = [
...
'rest_framework',
"drf_yasg",
...
]

修改urls.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
...
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="Carey博客 API",
default_version='v1',
description="Carey博客 description",
terms_of_service="https://carey.akhack.com/",
contact=openapi.Contact(email="xxx@xx.com"),
license=openapi.License(name="BSD License"),
),
public=True,
permission_classes=(permissions.AllowAny,),
)
urlpatterns = [
url(r'^swagger(?P<format>\.json|\.yaml)$', schema_view.without_ui(cache_timeout=0), name='schema-json'),
url(r'^swagger/$', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
url(r'^redoc/$', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),
...
]

通常我们使用下面的即可

1
url(r'^swagger/$', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),

接口文档


当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器