Swagger簡介
Swagger是一個規范和完整的框架,用於生成,描述,調用和可視化RESTful風格的Web服務,總體目標是使客戶端和文件系統作為服務器以同樣的速度來更新。每當接口有變動時,對應的接口文檔也會自動更新
- swagger可以生成一個具有互動性的API控制台,開發者可以用來快速學習和嘗試API
- swagger可以生成客戶端SDK代碼用於各種不同的平台上的實現
- swagger文件可以在許多不同的平台上動代碼注釋中自動生成
- swagger有一個強大的社區,里面有許多強悍的貢獻者
安裝Django-rest-swagger
pip install django-rest-swagger
setting.py文件添加django-rest-swagger應用
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', 'api', 'rest_framework_swagger', ]
views.py文件代碼,添加注釋內容
from django.shortcuts import render #響應http的返回內容 from django.contrib.auth.models import User,Group #導入Django自帶的user和group庫 from rest_framework import viewsets #viewsets用於視圖的展現形式 from api.serializers import UserSerializer,GroupSerializer #導入自定義的兩個序列化類 # Create your views here. class UserViewSet(viewsets.ModelViewSet): """ retrieve: Return a user instance. list: Return all users,ordered by most recently joined. create: Create a new user. delete: Remove an existing user. partial_update: Update one or more fields on an existing user. update: Update a user. """ queryset = User.objects.all() #查詢user表的全部信息 serializer_class = UserSerializer #serializers_class會找到對應的Serializers class GroupViewSet(viewsets.ModelViewSet): """ retrieve: Return a groups instance. list: Return all groups,ordered by most recently joined. create: Create a new groups. delete: Remove an existing groups. partial_update: Update one or more fields on an existing groups. update: Update a groups. """ queryset = Group.objects.all() #查詢Group表的全部信息 serializer_class = GroupSerializer
urls.py文件添加get_schema_view
from django.contrib import admin from django.urls import path from django.conf.urls import include from rest_framework import routers #導入路由 from api import views from rest_framework.schemas import get_schema_view from rest_framework_swagger.renderers import SwaggerUIRenderer,OpenAPIRenderer schema_view=get_schema_view(title="ZXJ_API",renderer_classes=[OpenAPIRenderer,SwaggerUIRenderer]) #配置路由 router = routers.DefaultRouter() #生成路由對象 router.register(r'users',views.UserViewSet) #輸入users會指向views中的UserViewSet router.register(r'groups',views.GroupViewSet)#輸入groups會指向views中的GroupViewSet urlpatterns = [ path('admin/', admin.site.urls), #這個路徑就是http://127.0.0.1:8000/admin/ path('',include(router.urls)), #這個路徑就是http://127.0.0.1:8000/ 后面可以根users或者groups path('api-auth/',include('rest_framework.urls',namespace='rest_framework')), path('docs/',schema_view,name='docs') ]
啟動服務
點擊接口可以進行創建user,group,也可以修改或者刪除。
可以訪問:http://127.0.0.1:8001/users/查看剛才創建的newuser是否創建成功