1. 程式人生 > 程式設計 >Django 自動生成api介面文件教程

Django 自動生成api介面文件教程

最近在寫測試平臺,需要實現一個節點伺服器的api,正好在用django,準備使用djangorestframework外掛實現。

需求

實現一個介面,在呼叫時,通過傳遞的引數,直接執行對應專案的自動化測試

環境

Python3.6,PyCharm,W7

專案結構

功能實現

流程

我們要做的就是實現以上流程

安裝

pip install djangorestframework 
pip install markdown 
pip install django-filter # Filtering support

配置

INSTALLED_APPS = (
 ...
 'rest_framework',)

編寫程式碼(本次程式碼不涉及資料庫操作,只簡單的寫一個api)

①:開啟AutoApi/Api/views.py 編寫如下程式碼

from django.http import JsonResponse,HttpResponseNotAllowed,HttpResponse
from django.views.decorators.csrf import csrf_exempt
from rest_framework.parsers import JSONParser
from rest_framework import status

@csrf_exempt
def run_job(request):
 # 判斷請求頭是否為json
 if request.content_type != 'application/json': 
  # 如果不是的話,返回405
  return HttpResponse('only support json data',status=status.HTTP_415_UNSUPPORTED_MEDIA_TYPE)
 # 判斷是否為post 請求
 if request.method == 'POST':
  try:
   # 解析請求的json格式入參
   data = JSONParser().parse(request)
  except Exception as why:
   print(why.args)
  else:
   content = {'msg': 'SUCCESS'}
   print(data)
   # 返回自定義請求內容content,200狀態碼
   return JsonResponse(data=content,status=status.HTTP_200_OK)
 # 如果不是post 請求返回不支援的請求方法
 return HttpResponseNotAllowed(permitted_methods=['POST'])

②:開啟AutoApi/Api/urls.py 編寫如下程式碼

from django.conf.urls import url
from Api import views

urlpatterns = [
 url(r'^runJob/$',views.run_job),]

③:開啟AutoApi/AutoApi/urls.py 修改如下程式碼

ALLOWED_HOSTS = '*' # 修改為* 程式碼允許任意host


from django.conf.urls import url,include

urlpatterns = [
 url(r'^admin/',admin.site.urls),url(r'^',include('Api.urls')),# 新增
]

④:啟動服務

python manage.py runserver 0.0.0.0:8080

⑤:我們請求試試看

以上就是簡單的實現一個api ,其實開發說的介面就這麼簡單,沒有那麼神祕!

接下來把post 的資料env ,project,cases 解析出來傳給對應的自動化測試入口函式,就可以實現通過介面請求,啟動自動化測試的目的。

後續

實現介面呼叫自動化測試專案

實現非同步介面

實現定時任務

這篇Django 自動生成api介面文件教程就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。