Swagger 使用方法
注:本篇文章基于Django-rest-swagger 2.0.7环境下撰写
参考英文文档:
http://django-rest-swagger.readthedocs.io/en/latest/
本文是使用swagger工具结合Django-rest-framework进行restful API的管理以及可视化显示,结合今天开发的经验进行记录
1.下载:
pip install django-rest-swagger
2.快速搭建:
1)在Django的settings.py中:
INSTALLED_APPS = [
...
'rest_framework_swagger',
...
]
2)在urls.py中:
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显示的内容以及显示的格式:
在settings.py中新建一个配置字典,取名SWAGGER_SETTINGS:
SWAGGER_SETTINGS = {
'SECURITY_DEFINITIONS':{
'basic':{
'type':'basic'
}
}
}
下面对可以添加到该配置项中的内容进行解释:
- USE_SESSION_AUTH: 可以用于切换Django Auth 的认证机制。设置为True将会显示一个 login/logout 的按钮在Swagger UI上面并且上传csrf_tokens到api中。
缺省值: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'
- LOGIN_URL: 这个URL是用来在会话身份验证中进行登陆的,接收URL的命名模式。
缺省值:django.conf.settings.LOGIN_URL
- LOGOUT_URL: 这个URL是用来从身份验证会话中退出来的,接收URL的命名模式。
缺省值:django.conf.setttings.LOGOUT_URL
- SECURITY_DEFINITIONS: 这是一个安全定义的配置,配置鉴权的方法对于使用Swagger的用户,这个能够支持的类型是 basic, apiKey, oauth2。
缺省值:
{ 'basic':
{
'type': 'basic'
}
}
接下来就是一些最基本的配置了,对于SwaggerUI:
- APIS_SORTER: 设置显示的API的排序方式。可以选择 alpha(字母顺序排)
默认值:None
- DOC_EXPANSION: API列表最开始的显示方式
可选参数:
None:所有api操作都折叠起来
'list': 列出所有的操作(仅仅是操作列表,无具体信息)
'full': 解释所有的操作(列出操作列表所有的具体信息,全部摊开来)
默认值:None
- JSON_EDITOR: 能够有一个图像界面去编辑复杂的api内容
默认值:False
- OPERATIONS_SORTER: 对每一个API的操作列表排序
可选参数:
alpah:按字母排序
method:按HTTP方法排序
默认值:None
- SHOW_REQUEST_HEADERS:设置True可以显示request headers
默认值:False
- SUPPORTEN_SUBMIT_METHODS:设置可以操作的HTTP方法当使用"try it out!"按钮的时候
默认值:['get', 'post', 'put', 'delete', 'patch']
- VALIDATOR_URL: 一个对于Swagger.io的在线模式验证的URL设置,能够去修改指定到本地下载或者设置 None 进行禁止
默认值: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, # 添加此行
……
Swagger 使用方法的更多相关文章
- 访问SpringBoot中的Swagger的方法
1.首先启动springboot+swagger的工程. 2.在application.yml里面查看服务的端口号,比如这里是9510. 3.访问URL:http://localhost:9510/t ...
- 用Swagger生成接口文档
Swagger简介 在系统设计的时候,各个应用之间往往是通过接口进行交互的.因此接口的定义在整个团队中就变得尤为重要.我们可以把接口的规范用接口描述语言进行描述,然后Swagger可以根据我们定义的接 ...
- Swagger简介
前言 Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件.本文简单介绍了在项目中集成swagger的方法和一些常见问题.如果想深入分析项目源码,了解更多内容,见参考资料. S ...
- .NET Core使用swagger进行API接口文档管理
一.问题背景 随着技术的发展,现在的开发模式已经更多的转向了前后端分离的模式,在前后端开发的过程中,联系的方式也变成了API接口,但是目前项目中对于API的管理很多时候还是通过手工编写文档,每次的需求 ...
- 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之三 || Swagger的使用 3.1
常见问题 1.经常有小伙伴遇到这个错误 这是因为接口json文档定义和调用不是一个 1.定义: ConfigureServices 方法中的 services.AddSwaggerGen 注册的一个 ...
- 【从零开始搭建自己的.NET Core Api框架】(一)创建项目并集成swagger:1.1 创建
系列目录 一. 创建项目并集成swagger 1.1 创建 1.2 完善 二. 搭建项目整体架构 三. 集成轻量级ORM框架——SqlSugar 3.1 搭建环境 3.2 实战篇:利用SqlSuga ...
- SpringBoot系列: 使用 Swagger 生成 API 文档
SpringBoot非常适合开发 Restful API程序, 我们都知道为API文档非常重要, 但要维护好难度也很大, 原因有: 1. API文档如何能被方便地找到? 以文件的形式编写API文档都有 ...
- net core体系-API-Restful+Swagger搭建API
本篇主要简单介绍下.net core下搭建WebApi 项目结构 项目结构其实不用多说,基本上大同小异. Controller:对外暴露的契约 Business/IBussiness:业务逻辑层实现及 ...
- springboot+swagger集成
一.swagger介绍 Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件.本文简单介绍了在项目中集成swagger的方法和一些常见问题.如果想深入分析项目源码,了解更多内容 ...
随机推荐
- postgresql数据类型转换
PostgreSQL数据类型转换需要使用语法 alter table tbname alter column fieldname type date_type 遇到需要转换为特殊类型如DATE.BOO ...
- 标清与高清,720p和1080p,720i和720p,h264与h265
480x320, 640x480 标清 1024x720p 高清 1920x1080i (隔行扫描) 也属于高清 1920x1080p 全高清 3840x2160,7680x4320 超(高)清 ...
- VS调试技巧
下面有从浅入深的6个问题,您可以尝试回答一下 一个如下的语句for (int i = 0; i < 10; i++){if (i == 5)j = 5;},什么都写在一行,你怎么在j=5前面插入 ...
- location.href跳转不正确
今天写这个随笔的用意是为了记录我遇到的一种情况,导致我页面无法正确跳转 location.href跳转页面其实很简单,只要附上url就可以了,但是今天我在测试一个跳转时是这么写的: location. ...
- C++学习基础四——顺序容器和关联容器
—顺序容器:vector,list,queue1.顺序容器的常见用法: #include <vector> #include <list> #include <queue ...
- C++学习基础二——指针与引用的区别
一.指针: (1)如果对指针进行解引用操作 赋值,改变的是指针所指向对象的值:(2)如果不对指针进行解引用操作 赋值,则改变的是指针本身的值:(3)const指针本身的值不能修改,但是const指针所 ...
- leetcode 136
136. Single Number Given an array of integers, every element appears twice except for one. Find that ...
- TCheckListBox
TCheckListBox.CheckListBox http://www.cnblogs.com/mingdep/archive/2012/03/20/2408282.html 全部打勾 for ( ...
- Python自动化 【第九篇】:Python基础-线程、进程及python GIL全局解释器锁
本节内容: 进程与线程区别 线程 a) 语法 b) join c) 线程锁之Lock\Rlock\信号量 d) 将线程变为守护进程 e) Event事件 f) queue队列 g) 生 ...
- js生成二维码实例(真实有效)
js文件 qrcode.js 代码 /*from tccdn minify at 2014-6-4 14:59:43,file:/cn/c/c/qrcode.js*/ /** * @fileov ...