Swagger配置

关于swagger

Swagger能成为最受欢迎的REST APIs文档生成工具之一,有以下几个原因:

- Swagger 可以生成一个具有互动性的API控制台,开发者可以用来快速学习和尝试API。

- Swagger 可以生成客户端SDK代码用于各种不同的平台上的实现。

- Swagger 文件可以在许多不同的平台上从代码注释中自动生成。

- Swagger 有一个强大的社区,里面有许多强悍的贡献者。

下面就实战django rest swagger为drf生成api接口文档

环境

```Python3.6

Django1.11

django-rest-swagger

djangorestframework

```

#################################################

安装

```

pip install django==1.11.6

pip instal djangorestframework

pip install django-rest-swagger

############################

```

创建项目和app

```

startproject apitest

startapp api

```

##################################################

配置 rest_api/settings.py

```

INSTALLED_APPS = [

    'django.contrib.admin',

    'django.contrib.auth',

    'django.contrib.contenttypes',

    'django.contrib.sessions',

    'django.contrib.messages',

    'django.contrib.staticfiles',

    # 加入以下

    'api',

    'rest_framework',

    'rest_framework_swagger',

]

# swagger 配置项

SWAGGER_SETTINGS = {

    # 基础样式

    'SECURITY_DEFINITIONS': {

        "basic":{

            'type': 'basic'

        }

    },

    # 如果需要登录才能够查看接口文档, 登录的链接使用restframework自带的.

    'LOGIN_URL': 'rest_framework:login',

    'LOGOUT_URL': 'rest_framework:logout',

    # 'DOC_EXPANSION': None,

    # 'SHOW_REQUEST_HEADERS':True,

    # 'USE_SESSION_AUTH': True,

    # 'DOC_EXPANSION': 'list',

    # 接口文档中方法列表以首字母升序排列

    'APIS_SORTER': 'alpha',

    # 如果支持json提交, 则接口文档中包含json输入框

    'JSON_EDITOR': True,

    # 方法列表字母排序

    'OPERATIONS_SORTER': 'alpha',

    'VALIDATOR_URL': None,

}

```

#################################################

配置api/serializer.py

```

# 序列化

from django.contrib.auth.models import User,Group

from  rest_framework import serializers

class UserSerializer(serializers.HyperlinkedModelSerializer):

    class Meta:

        model = User

        fields = "__all__"

class GroupSerializer(serializers.HyperlinkedModelSerializer):

    class Meta:

        model =Group

        fields = "__all__"

```

##########################################################

配置api/views.py

```

# 视图


from  django.contrib.auth.models import User,Group

from rest_framework import viewsets

from  api.serializers import UserSerializer,GroupSerializer

# Create your views here.

class UserViewSet(viewsets.ModelViewSet):

    '''查看,编辑用户的界面'''

    queryset = User.objects.all().order_by('-date_joined')

    serializer_class = UserSerializer

class GroupViewSet(viewsets.ModelViewSet):

    '''查看,编辑组的界面'''

    queryset = Group

    serializer_class = GroupSerializer

```

#######################################################

配置apitest/urls.py

```

from django.conf.urls import url,include

from django.contrib import admin

from  rest_framework import routers

from  api import views

# 路由

router = routers.DefaultRouter()

router.register(r'users',views.UserViewSet,base_name='user')

router.register(r'groups',views.GroupViewSet,base_name='group')

# 重要的是如下三行

from rest_framework.schemas import get_schema_view

from rest_framework_swagger.renderers import SwaggerUIRenderer, OpenAPIRenderer

schema_view = get_schema_view(title='Users API', renderer_classes=[OpenAPIRenderer, SwaggerUIRenderer])

urlpatterns = [

    # swagger接口文档路由

    url(r'^docs/', schema_view, name="docs"),

    url(r'^admin/', admin.site.urls),

    url(r'^',include(router.urls)),

    # drf登录

    url(r'^api-auth/',include('rest_framework.urls',namespace='rest_framework'))

]

```

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,542评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,822评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,912评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,449评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,500评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,370评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,193评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,074评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,505评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,722评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,841评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,569评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,168评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,783评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,918评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,962评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,781评论 2 354

推荐阅读更多精彩内容