Django Rest Framework(DRF)是構(gòu)建強大且靈活的Web API的優(yōu)秀工具。它基于Django,提供了一套用于構(gòu)建Web API的組件和工具,簡化了API開發(fā)過程,同時保留了Django的優(yōu)雅和強大。 一、Web應(yīng)用模式在開發(fā)Web應(yīng)用時,通常有兩種開發(fā)模式。 1、前后端不分離前端頁面看到的效果都是由后端控制,由后端渲染頁面或重定向,前端與后端的耦合度很高。 這種應(yīng)用模式比較適合純網(wǎng)頁應(yīng)用,但是當(dāng)后端對接App時,App可能并不需要后端返回一個HTML網(wǎng)頁,而僅僅是數(shù)據(jù)本身,所以后端原本返回網(wǎng)頁的接口不再適用于前端App應(yīng)用,為了對接App后端還需再開發(fā)一套接口。 2、前后端分離后端僅返回前端所需的數(shù)據(jù),不再渲染HTML頁面,不再控制前端的效果。 至于前端用戶看到什么效果,從后端請求的數(shù)據(jù)如何加載到前端中,都由前端自己決定,網(wǎng)頁有網(wǎng)頁的處理方式,App有App的處理方式,但無論哪種前端,所需的數(shù)據(jù)基本相同,后端僅需開發(fā)一套邏輯對外提供數(shù)據(jù)即可。 前后端分離模式優(yōu)點:
二、什么是API 接口?API(應(yīng)用程序接口)是一組定義了軟件組件如何互相交互的規(guī)范。 API 是一些功能、定義或者協(xié)議的集合,通過 API 接口實現(xiàn)計算機軟件之間的相互通信。對外封裝完善,調(diào)用時無需學(xué)習(xí) API 內(nèi)部源碼,依據(jù) API 文檔功能說明書來使用即可。 API 同時也是一種中間件,為各種不同平臺提供數(shù)據(jù)共享。 API接口的數(shù)據(jù)格式有哪些?目前 API 接口支持 XLSX、JSON、XML、CSV、RDF 等數(shù)據(jù)格式,其中 JSON 和 XML 是主流的數(shù)據(jù)格式,幾乎所有 API 接口都支持這兩種數(shù)據(jù)格式。 而 RESTful API 是一種基于REST架構(gòu)風(fēng)格設(shè)計的API。它使用統(tǒng)一的接口和狀態(tài)無關(guān)的通信方式來實現(xiàn)各種網(wǎng)絡(luò)應(yīng)用。這種設(shè)計風(fēng)格使得RESTful API具有簡單、靈活、可擴展和易于理解的特點,因此在Web開發(fā)中得到了廣泛的應(yīng)用。 Django Rest Framework 正是基于Rest架構(gòu)風(fēng)格設(shè)計的一款 后端API 框架。 三、RESTful APIRESTful 是一種定義 Web API 接口的設(shè)計風(fēng)格,尤其適用于前后端分離的應(yīng)用模式中。 這種風(fēng)格的理念認為后端開發(fā)任務(wù)就是提供數(shù)據(jù)的,對外提供的是數(shù)據(jù)資源的訪問接口,所以在定義接口時,客戶端訪問的URL路徑就表示這種要操作的數(shù)據(jù)資源。 事實上,我們可以使用任何一個框架都可以實現(xiàn)符合restful規(guī)范的API接口。 1、數(shù)據(jù)安全RESTful API 鏈接一般都采用https協(xié)議進行傳輸,以提高數(shù)據(jù)交互過程中的安全性。 2、接口特征通常用api關(guān)鍵字標(biāo)識接口url。 https://api./https://github.io/api 3、多數(shù)據(jù)版本共存在url鏈接中標(biāo)識數(shù)據(jù)版本。
4、數(shù)據(jù)即是資源,均使用名詞(可復(fù)數(shù))接口一般都是完成前后臺數(shù)據(jù)的交互,交互的數(shù)據(jù)我們稱之為資源。 https://api./v1/users
特殊的接口可以出現(xiàn)動詞,因為這些接口一般沒有一個明確的資源,或是動詞就是接口的核心含義
5、資源操作由請求方式?jīng)Q定操作資源一般都會涉及到增刪改查,我們提供請求方式來標(biāo)識增刪改查動作。 https://api./users - get請求:獲取所有用戶https://api./users/1 - get請求:獲取ID為1的用戶https://api./users - post請求:新增一個用戶https://api./users/1 - put請求:整體修改ID為1的用戶https://api./users/1 - patch請求:局部修改ID為1的用戶https://api./users/1 - delete請求:刪除ID為1的用戶 6、通過在url上傳參的形式傳遞搜索條件
7、錯誤處理,應(yīng)返回錯誤信息{ error: '服務(wù)器發(fā)生錯誤'} 四、Django Rest Framework1、DRF 簡介Django REST framework 是一個建立在Django基礎(chǔ)之上的Web 應(yīng)用開發(fā)框架,可以快速的開發(fā)REST API接口應(yīng)用。 DRF優(yōu)點:
2、安裝和設(shè)置首先,確保你的項目已經(jīng)安裝了Django。然后,使用以下命令安裝DRF:
接下來,在你的Django項目的settings.py中添加以下行: INSTALLED_APPS = [ # ... 'rest_framework',] 然后,配置你的URL以包含DRF的路由:
3、創(chuàng)建一個簡單的API視圖現(xiàn)在,我們來創(chuàng)建一個簡單的API視圖。首先,定義一個序列化器: from rest_framework import serializersclass MyModelSerializer(serializers.ModelSerializer): class Meta: model = MyModel fields = 'all' 然后,創(chuàng)建一個基于類的視圖:
最后,在你的urls.py中添加這個視圖: from django.urls import pathfrom .views import MyModelListViewurlpatterns = [ # ... path('mymodel/', MyModelListView.as_view(), name='mymodel-list'),] 現(xiàn)在,你已經(jīng)創(chuàng)建了一個簡單的API視圖,可以通過/api/mymodel/訪問。 五、結(jié)語本篇文章小圈只是做了一個簡單的引入以及介紹,DRF有很多其他功能和選項,可以滿足更復(fù)雜的API需求。比如:更豐富的類視圖、身份認證與權(quán)限管理等,后續(xù)小圈會抽空根據(jù)案例為大家?guī)砀毣腄RF學(xué)習(xí)教程?,F(xiàn)在我們可以通過深入研究DRF文檔和示例,更好地利用這個強大的工具。 希望這篇博文能夠幫助你開始使用Django Rest Framework,構(gòu)建出強大且高效的Web API。祝大家編碼愉快! |
|