現(xiàn)在前后端分離的架構(gòu)設(shè)計(jì)越來(lái)越流行,業(yè)界甚至出現(xiàn)了API優(yōu)先的趨勢(shì)。顯然API開(kāi)發(fā)已經(jīng)成為后端程序員的必備技能了,那作為一個(gè)測(cè)試,特別是把Django作為自己主要的自動(dòng)化測(cè)試平臺(tái)的測(cè)試開(kāi)發(fā),Django REST framework(DRF)這個(gè)REST API開(kāi)發(fā)框架就是你不得不掌握的內(nèi)容了。 前置知識(shí)點(diǎn) RESTful架構(gòu):https://mp.weixin.qq.com/s/hsthbAPUJMR_aOrxC1g79Q 初識(shí)Django:https://mp.weixin.qq.com/s/EhGWefofhWtAjdd8sSMC-A 在開(kāi)始動(dòng)手使用Django REST framework 編寫(xiě)你的自動(dòng)化測(cè)試平臺(tái)之前,請(qǐng)大家先閱讀以上兩篇文章了解RESTful架構(gòu)以及Django的基本開(kāi)發(fā)流程。 環(huán)境準(zhǔn)備 構(gòu)建一個(gè)虛擬環(huán)境,并安裝好相關(guān)依賴: 創(chuàng)建一個(gè)Django項(xiàng)目及APP: 編輯配置文件setting.py: 創(chuàng)建一個(gè)Django項(xiàng)目及APP: 更新數(shù)據(jù)庫(kù): 模型與序列化 在準(zhǔn)備好環(huán)境之后,接下來(lái)針對(duì)項(xiàng)目信息這個(gè)接口進(jìn)行開(kāi)發(fā)。 首先是模型層,在apiTest/model.py 創(chuàng)建一個(gè)Project 類來(lái)存儲(chǔ)項(xiàng)目信息: Django REST framework框架與Django框架最核心的區(qū)別就是:序列化器,DRF提供了定義序列化器Serializer的方法,可以幫助我們簡(jiǎn)化序列化和反序列化部分的代碼編寫(xiě),大大提高REST API的開(kāi)發(fā)速度。 序列化器的作用: 對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換 序列化(對(duì)象轉(zhuǎn)為json)和反序列化(json轉(zhuǎn)為對(duì)象); 進(jìn)行數(shù)據(jù)的校驗(yàn) 判斷用戶發(fā)送的數(shù)據(jù)是否合法。 在apiTest/serializers.py 中添加關(guān)于Project 對(duì)象的序列化代碼: 視圖 DFR 提供了 請(qǐng)求對(duì)象(Request objects)和 響應(yīng)對(duì)象(Response objects)來(lái)提供更加靈活的請(qǐng)求解析和使用內(nèi)容協(xié)商來(lái)確定返回給客戶端的正確內(nèi)容類型。 DFR還提供了兩個(gè)可用于編寫(xiě)API視圖的包裝器(wrappers): 用于基于函數(shù)視圖的@api_view裝飾器; 用于基于類視圖的APIView類。 接下來(lái),我們將使用APIView 類進(jìn)行視圖開(kāi)發(fā)。 在apiTest/project.py中添加以下代碼: 顯示-URLs 為了客戶端能夠訪問(wèn)開(kāi)發(fā)完成的接口(即url與視圖的映射),在apiTest/urls中添加如下代碼: 如此就可以通過(guò) http://127.0.0.1/project/ 以及http://127.0.0.1/project/id/ 訪問(wèn)到Project 對(duì)象的增刪查改等操作頁(yè)面啦。 后記 DRF 也提供了認(rèn)證與權(quán)限、超鏈接API等等功能,大家可以通過(guò)查看官方文檔繼續(xù)學(xué)習(xí)~ 官網(wǎng)地址:https://www./ |
|