Django3 关于swagger的应用
Swagger优势:
1)Swagger可生成一个具有互动性的API控制台,开发者可快速学习和尝试API
2)Swagger支持不同客户端SDK代码,用于不同平台上(Java、Python、...)的实现
3)Swagger可在不同的平台上从代码注释中自动生成
4)Swagger社区活跃,里面有许多强悍的贡献者
从2019年6月份开始,官方废弃了django-rest-swagger,在django 3.0中已经不支持该库了,取而代之的是全新的第三方drf-yasg库。
GitHub地址:
https://github.com/marcgibbons/django-rest-swagger
1.安装drf-yasg库
pip install drf-yasg
2.修改项目settings.py文件,在INSTALLED_APPS中添加drf_yasg
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'drf_yasg',
'rest_framework'
]
3.修改项目url.py文件,进行路由配置
导入get_schema_view和openapi包
from drf_yasg.views import get_schema_view
from drf_yasg import openapi
添加如下代码
schema_view = get_schema_view(
openapi.Info(
title="测试项目API",
default_version='v1.0',
description="测试工程接口文档",
terms_of_service="https://www.baidu.com",
contact=openapi.Contact(email="baidu@163.com"),
license=openapi.License(name="BSD License"),
),
public=True,
permission_classes=(permissions.AllowAny,),
)
在urlpatterns中添加下面3行
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'),
4.查看效果
服务运行起来后,浏览器访问http://127.0.0.1:8000/redoc/,就可以看到redoc ui界面图
或者访问http://127.0.0.1:8000/swagger,就可以看到Swagger接口文档界面

浙公网安备 33010602011771号