PS: 个人深感python开发者社区氛围比安卓/ios/java差多了。不过,这也许是个机会~
前提: 本人开发环境是mac10.14.4,Python3.7.2
django-rest-swagger vs drf-yasg
百度google各种查询帖子,python中生成自动化API文档绝大部分用的都是django-rest-swagger库,然而此库作者表示在2019-06-04已停止更新,而且此库需要的第三方版本库是:
Django 1.8+
Django REST framework 3.5.1+
Python 2.7, 3.5, 3.6
换句话说,django-rest-swagger并不支持Python3.7的环境,所以本人选择了drf-yasg库,它需要的第三方版本库是:
Django Rest Framework: 3.8, 3.9
Django: 1.11, 2.1, 2.2
Python: 2.7, 3.5, 3.6, 3.7
drf-yasg快速上手
安装
pip install -U drf-yasg
1
1
在settings.py声明app,并将debug设置为true
INSTALLED_APPS = [
'drf_yasg',
DEBUG = True
1
2
3
4
5
6
7
1
2
3
4
5
6
7
在根url.py添加scheme_view
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="API文档",
default_version='v1.0.0',
contact=openapi.Contact(name='联系开发者', email="your email"),
permission_classes=(permissions.AllowAny,),
urlpatterns = [
url('swagger', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
踩坑
1. 找不到drf目录下的静态文件
解决方案:测试环境settings.py中的DEBUG设置为true(方便生成api文档), 生产环境设置为False。在python环境中,如果使用drf库生成API文档,需要将DEBUG设置为true,否则找不到静态文件。