Skip to main content
 Web开发网 » 站长学院 » 浏览器插件

django drf_yasg 非restful风格的api怎么在swagger上展示?

2021年10月31日5580百度已收录

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,否则找不到静态文件。

评论列表暂无评论
发表评论
微信