Python接口自動化測試(16):Django接入swagger


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是否創建成功

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM