注:本篇文章基于Django-rest-swagger 2.0.7环境下撰写python
参考英文文档:django
http://django-rest-swagger.readthedocs.io/en/latest/api
本文是使用swagger工具结合Django-rest-framework进行restful API的管理以及可视化显示,结合今天开发的经验进行记录安全
1.下载:restful
pip install django-rest-swagger
2.快速搭建:python2.7
1)在Django的settings.py中:工具
INSTALLED_APPS = [ ... 'rest_framework_swagger', ... ]
2)在urls.py中:post
from rest_framework_swagger.views import get_swagger_view schema_view = get_swagger_view(title='Pastebin API') #其中title='Pastebin API'为改rest api显示集合的名字(可自定义) urlpatterns = [ …… url(r'^$', schema_view) …… ]
3)如今开始在settings.py中设置swagger显示的内容以及显示的格式:url
在settings.py中新建一个配置字典,取名SWAGGER_SETTINGS:spa
SWAGGER_SETTINGS = { 'SECURITY_DEFINITIONS':{ 'basic':{ 'type':'basic' } } }
下面对能够添加到该配置项中的内容进行解释:
缺省值:True
注:这个login/logout按钮是依赖着settings里面的 LOGIN_URL 和 LOGOUT_URL,他们可以在SWAGGER_SETTINGS 或者 Django settings中进行配置。
urls.py:
urlpatterns = [ url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')) ]
settings.py:
LOGIN_URL = 'rest_framework:login' LOGOUT_URL = 'rest_framework:logout'
缺省值:django.conf.settings.LOGIN_URL
缺省值:django.conf.setttings.LOGOUT_URL
缺省值:
{ 'basic': { 'type': 'basic' } }
接下来就是一些最基本的配置了,对于SwaggerUI:
默认值:None
可选参数:
None:全部api操做都折叠起来
'list': 列出全部的操做(仅仅是操做列表,无具体信息)
'full': 解释全部的操做(列出操做列表全部的具体信息,所有摊开来)
默认值:None
默认值:False
可选参数:
alpah:按字母排序
method:按HTTP方法排序
默认值:None
默认值:False
默认值:['get', 'post', 'put', 'delete', 'patch']
默认值:https://online.swagger.io/validator/
3.遇到的问题:
1)在设置好遇到了一个问题,就是会在下方提示有一个错误,错误为:schemaValidationMessages":[{"level":"error","message":"Can't read from file http://127.0.0.1:8000/swagger/swagger"}]`
解决办法:
vi /usr/local/lib/python2.7/dist-packages/rest_framework_swagger/static/rest_framework_swagger/init.js
将其修改成以下所示:
var settings = { url: window.location.pathname + '?format=openapi', validatorUrl: undefined, # 添加此行 ……