Django Rest Swagger生成api文檔

他來(lái)了,他來(lái)了,,,

可能你正在為寫(xiě)接口文檔而發(fā)愁,,,

啊啊啊啊,,,到底該怎么辦呢?

那么今天跟大家來(lái)說(shuō)一下關(guān)于接口文檔的事情
django有一個(gè)自帶的rest swagger ,這個(gè)模塊可以幫助你生成接口文檔,或者你可以將你需要的內(nèi)容拿出來(lái)。

  • Swagger 可以生成一個(gè)具有互動(dòng)性的API控制臺(tái),開(kāi)發(fā)者可以用來(lái)快速學(xué)習(xí)和嘗試API。
  • Swagger 可以生成客戶(hù)端SDK代碼用于各種不同的平臺(tái)上的實(shí)現(xiàn)。
  • Swagger 文件可以在許多不同的平臺(tái)上從代碼注釋中自動(dòng)生成。
  • Swagger 有一個(gè)強(qiáng)大的社區(qū),里面有許多強(qiáng)悍的貢獻(xiàn)者。

接下來(lái)具體介紹該怎么用它,很簡(jiǎn)單,跟著步驟配置就好

環(huán)境

Python3.6
Django1.11
django-rest-swagger
djangorestframework

安裝

pip install django==1.11.6
pip instal djangorestframework
pip install django-rest-swagger

如果你已經(jīng)有創(chuàng)建完成的項(xiàng)目,那么只需要添加上本文的配置,否則你需要新建

startproject projectname
startapp appname

項(xiàng)目目錄/settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'store',    # 這里寫(xiě)你自己的app名字
    'rest_framework', 
    'rest_framework_swagger',  # 接口文檔模塊
]


# swagger 配置項(xiàng)
SWAGGER_SETTINGS = {
    # 基礎(chǔ)樣式
    '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,
}

序列化 store/serializer.py

我這里是store,你需要?jiǎng)?chuàng)建在自己的app下,下面的原封不動(dòng)的復(fù)制到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__"

配置視圖函數(shù)文件

# 接口文檔視圖
from store.serializers import UserSerializer,GroupSerializer
#這里的目錄一定得是你自己的app下

#下面的只管復(fù)制就可以啦!
from  django.contrib.auth.models import User,Group

from rest_framework import viewsets

class UserViewSet(viewsets.ModelViewSet):
    '''查看,編輯用戶(hù)的界面'''
    queryset = User.objects.all().order_by('-date_joined')
    serializer_class = UserSerializer

class GroupViewSet(viewsets.ModelViewSet):
    '''查看,編輯組的界面'''
    queryset = Group
    serializer_class = GroupSerializer

配置urls.py 文件

from django.conf.urls import url, include
from django.contrib import admin
from store.views import UserViewSet, GroupViewSet
from rest_framework import routers

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])

#自動(dòng)路由匹配
router = routers.DefaultRouter()
router.register(r'users', UserViewSet, base_name='user')
router.register(r'groups', GroupViewSet, base_name='group')

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')),

]

說(shuō)了這么多,最后上效果圖
瀏覽器里輸入網(wǎng)址


image.png
image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 關(guān)于swagger Swagger能成為最受歡迎的REST APIs文檔生成工具之一,有以下幾個(gè)原因: Swagg...
    程序員同行者閱讀 5,649評(píng)論 1 4
  • 需求: 為客戶(hù)端同事寫(xiě)接口文檔的各位后端同學(xué),已經(jīng)在各種場(chǎng)合回憶了使用自動(dòng)化文檔工具前手寫(xiě)文檔的血淚史.我的故事卻...
    _Lyux閱讀 4,934評(píng)論 0 2
  • 使用 Django Rest Framework 3.5 自動(dòng)生成 API 文檔Auto-Generate Swa...
    treelake閱讀 13,010評(píng)論 14 18
  • 關(guān)于swagger Swagger能成為最受歡迎的REST APIs文檔生成工具之一,有以下幾個(gè)原因: - Swa...
    千沙qiansha閱讀 3,811評(píng)論 0 0
  • 這些天,對(duì)《易經(jīng)》的作者好奇,查資料的過(guò)程中,查到了電視劇《封神榜》。 記憶中,第一次知道《封神榜》是在十幾歲青春...
    姝穎的世界閱讀 822評(píng)論 0 5

友情鏈接更多精彩內(nèi)容