Django REST Framework概述

什麼是REST

REST與技術無關,表明的是一種軟件架構風格,REST是Representational State Transfer的簡稱,中文翻譯爲「表徵狀態轉移」。這裏說的表徵性,就是指資源,一般咱們稱爲資源狀態轉移。javascript

什麼是資源?

網絡上全部的文本、圖片、視頻等實體,都是資源。除了實體,還能夠是抽象概念,好比某人的手機號、住址等。找到某個資源,須要URL,統一資源定位符。html

URL和URI

URI是統一資源標誌符。URL用來描述地址,URI用來對資源進行標識。URL是URI的一個子集,經過定位的方式實現URIjava

RESTful規範

面向資源

每一個URL表明一種資源,URL中儘可能不要用動詞,要用名詞python

根據請求方式不一樣,進行不一樣的操做

GET:     從服務器取出資源
POST:   在服務器新建一個資源
PUT:     在服務器更新資源(客戶端提供改變後的完整資源)
PATCH: 在服務器更新資源(客戶端提供改變的屬性)
DELETE:從服務器刪除資源

在URL中體現版本

https://www.cnblogs.com/v1/myclass

在URL中體現是不是API

https://www.cnblogs.com/api/vi/myclass

儘可能使用HTTPS

https://www.cnblogs.com/api/vi/myclass

響應返回規範

{
    code: 1000, // 響應碼
    msg: "ok",  // 描述信息
    data:{  // 數據
        id:1,
        name:'小強',
        depart_id:http://www.luffycity.com/api/v1/depart/8
    }
}

舉例:django

例如動物園中有不少的動物,如何進行增刪改查?api

  • 查找一個老虎:https://www.zoo.com/api/v1/animal?class=tiger&id=1 GET
  • 查找全部老虎:https://www.zoo.com/api/v1/animal?class=tiger         GET
  • 增長一個老虎:https://www.zoo.com/api/vi/animal      POST
  • 刪除一個老虎:https://www.zoo.com/api/vi/animal         DELETE
  • 修改一個老虎的某個屬性:https://www.zoo.com/api/vi/animal PATCH
  • 修改一個老虎的全部屬性:https://www.zoo.com/api/vi/animal PUT

咱們能夠看到URL中所有都是名詞,對資源的操做(動做)體如今請求方式上,體現了面向資源的思想。服務器

Django REST Framework

是基於Django的RESTful實現網絡

下載架構

pip3 install djangorestframework

settings.pypost

INSTALLED_APPS = [
    ...
    'rest_framework',
]

urls.py

from DemoApp.views import BookView
urlpatterns = [
    path('list', BookView.as_view()),
]

views.py

from rest_framework.views import APIView
from rest_framework.response import Response
 
class BookView(APIView):
    def get(self, request, *args, **kwargs):
        return Response('GET請求,響應內容')
   
    def post(self, request, *args, **kwargs):
        return Response('POST請求,響應內容')
   
    def put(self, request, *args, **kwargs):
        return Response('PUT請求,響應內容')

DRF主要功能和組件

相關文章
相關標籤/搜索