在咱们接口开发完以后,须要交付给别人对接,在没有使用swagger的时候,咱们须要单独编写一份api接口文档,由postman之类的工具进行请求获得返回的结果。而有了swagger以后,能够经过提取接口代码中的注释来生成文档,而且能够直接在浏览器中调用,获取返回结果。先看下效果
python
pip install django-rest-swagger
setting.py
文件中添加django
INSTALLED_APPS = [ ... 'rest_framework_swagger', ... ]
在settings.py中能够添加修改swagger相关的配置api
SWAGGER_SETTINGS = { # 这里能够用获取到的token来登陆 'SECURITY_DEFINITIONS': { 'api_key':{ 'type': 'apiKey', 'in':'query', # token位置在url中 'name':'token' # 验权的字段 } }, 'USE_SESSION_AUTH': False, 'JSON_EDITOR': False, # False,用户能够本身编辑格式,不用按照serializers中的数据添加。True,会有多个输入框,输入serializer对应的字段的值 }
urls.py
中添加一下代码浏览器
from rest_framework.schemas import get_schema_view from rest_framework_swagger.renderers import SwaggerUIRenderer, OpenAPIRenderer schema_view = get_schema_view(title=‘API', renderer_classes=[OpenAPIRenderer, SwaggerUIRenderer]) urlpatterns = [ ... path('docs/', schema_view, name='docs'), # 线上环境中,最好去掉 ]
运行服务,访问docs/
即可以发现生成的文档。bash
docs/
会有权限的判断,因此访问全部接口,最好给全部的权限