使用RESTful風格開發PHP web

什麼是RESTful風格?

REST是REpresentational State Transfer的縮寫(一般中文翻譯爲表述性狀態轉移),REST 是一種體系結構,而 HTTP 是一種包含了 REST 架構屬性的協議,爲了便於理解,我們把它的首字母拆分成不同的幾個部分:

  • 表述性(REpresentational): REST 資源實際上可以用各種形式來進行表述,包括 XML、JSON 甚至 HTML——最適合資源使用者的任意形式;
  • 狀態(State): 當使用 REST 的時候,我們更關注資源的狀態而不是對資源採取的行爲;
  • 轉義(Transfer): REST 涉及到轉移資源數據,它以某種表述性形式從一個應用轉移到另一個應用。

簡單地說,REST 就是將資源的狀態以適合客戶端或服務端的形式從服務端轉移到客戶端(或者反過來)。在 REST 中,資源通過 URL 進行識別和定位,然後通過行爲(即 HTTP 方法)來定義 REST 來完成怎樣的功能。

實例說明:

在平時的 Web 開發中,method 常用的值是 GET 和 POST,但是實際上,HTTP 方法還有 PATCH、DELETE、PUT 等其他值,這些方法又通常會匹配爲如下的 CRUD 動作:

CRUD 動作 HTTP 方法
Create POST
Read GET
Update PUT 或 PATCH
Delete DELETE

儘管通常來講,HTTP 方法會映射爲 CRUD 動作,但這並不是嚴格的限制,有時候 PUT 也可以用來創建新的資源,POST 也可以用來更新資源。實際上,POST 請求非冪等的特性(即同一個 URL 可以得到不同的結果)使其成一個非常靈活地方法,對於無法適應其他 HTTP 方法語義的操作,它都能夠勝任。

在使用 RESTful 風格之前,我們如果想要增加一條商品數據通常是這樣的:

/addCategory?name=xxx

但是使用了 RESTful 風格之後就會變成:

/category

這就變成了使用同一個 URL ,通過約定不同的 HTTP 方法來實施不同的業務,這就是 RESTful 風格所做的事情了,爲了有一個更加直觀的理解,引用一下來自how2j.cn的圖:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章