注:本篇文章基于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 使用方法的更多相关文章

  1. 访问SpringBoot中的Swagger的方法

    1.首先启动springboot+swagger的工程. 2.在application.yml里面查看服务的端口号,比如这里是9510. 3.访问URL:http://localhost:9510/t ...

  2. 用Swagger生成接口文档

    Swagger简介 在系统设计的时候,各个应用之间往往是通过接口进行交互的.因此接口的定义在整个团队中就变得尤为重要.我们可以把接口的规范用接口描述语言进行描述,然后Swagger可以根据我们定义的接 ...

  3. Swagger简介

    前言 Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件.本文简单介绍了在项目中集成swagger的方法和一些常见问题.如果想深入分析项目源码,了解更多内容,见参考资料. S ...

  4. .NET Core使用swagger进行API接口文档管理

    一.问题背景 随着技术的发展,现在的开发模式已经更多的转向了前后端分离的模式,在前后端开发的过程中,联系的方式也变成了API接口,但是目前项目中对于API的管理很多时候还是通过手工编写文档,每次的需求 ...

  5. 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之三 || Swagger的使用 3.1

    常见问题 1.经常有小伙伴遇到这个错误 这是因为接口json文档定义和调用不是一个 1.定义: ConfigureServices 方法中的  services.AddSwaggerGen 注册的一个 ...

  6. 【从零开始搭建自己的.NET Core Api框架】(一)创建项目并集成swagger:1.1 创建

    系列目录 一.  创建项目并集成swagger 1.1 创建 1.2 完善 二. 搭建项目整体架构 三. 集成轻量级ORM框架——SqlSugar 3.1 搭建环境 3.2 实战篇:利用SqlSuga ...

  7. SpringBoot系列: 使用 Swagger 生成 API 文档

    SpringBoot非常适合开发 Restful API程序, 我们都知道为API文档非常重要, 但要维护好难度也很大, 原因有: 1. API文档如何能被方便地找到? 以文件的形式编写API文档都有 ...

  8. net core体系-API-Restful+Swagger搭建API

    本篇主要简单介绍下.net core下搭建WebApi 项目结构 项目结构其实不用多说,基本上大同小异. Controller:对外暴露的契约 Business/IBussiness:业务逻辑层实现及 ...

  9. springboot+swagger集成

    一.swagger介绍 Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件.本文简单介绍了在项目中集成swagger的方法和一些常见问题.如果想深入分析项目源码,了解更多内容 ...

随机推荐

  1. Navicat(连接) -1之SSH 设置

    SSH 设置 Secure SHell (SSH) 是一个通过网络登录其他计算机的程序,在远程服务器运行命令,和从一台机器移动文件到另一台.在不安全的网络中,它提供两台主机之间强大认证和安全加密的的通 ...

  2. ADF_Desktop Integration系列2_ADF桌面集成入门之开发简单ADF Desktop Excel

    2013-05-01 Created By BaoXinjian

  3. js--使用构造器函数来新建对象及操作

    通过new操作符来调用函数,来达到访问对象this值得目的,构造器将其创建的对象返回给我们. 直接上代码 //创建构造器函数 function Gadget(name, color){ this.na ...

  4. [CF #290-C] Fox And Names (拓扑排序)

    题目链接:http://codeforces.com/contest/510/problem/C 题目大意:构造一个字母表,使得按照你的字母表能够满足输入的是按照字典序排下来. 递归建图:竖着切下来, ...

  5. VBA_Excel_教程:过程,函数

    Sub s1() Debug.Print "s1" '调用过程:无括号,加call提升可读性 s2 Call s2 End Sub Sub s2() Debug.Print &qu ...

  6. dijkstra

    寻找从源结点到其他点之间的最短距离. 把给出的结点分成两组,一组a刚开始为空,另一组b为全部节点,dis[i]记录从源点到i结点的距离,同样当所有操作结束后dis[i]就是到达源点的最短距离啦,每次更 ...

  7. 重装系统分区时,发现一个叫LVM的东西,找出来和大家分享

    LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现,目前 ...

  8. 使用DotNetOpenAuth搭建OAuth2.0授权框架——Demo代码简单说明

    前段时间随意抽离了一部分代码作为OAuth2的示例代码,若干处会造成困扰,现说明如下: public class OAuthController : Controller { private stat ...

  9. Linux:ssh连接服务器很慢

    ssh连接服务器,如果很慢,可以进行如下处理: vi /etc/ssh/sshd_config#UseDNS yes改成:UseDNS no/etc/init.d/sshd restart ----- ...

  10. java对话框形式实现加减乘除

    import javax.swing.JOptionPane; // import class JOptionPane public class sumit{ public static void m ...