RESTful架構淺談

REST不是一種具體的技術架構或者框架,只是在HTTP協議下大家約定俗稱的一套準則,就好比大家約定俗稱有一百萬元就是屬於百萬富翁,那麼如果現在擁有了一百萬那麼你就自動被大家認爲是百萬富翁;

  其全稱爲Representational State Transfer,直接翻譯爲表現層狀態轉換;什麼是表現層,說白了就是用戶直接看到的view,而view從哪裏來呢,都是從服務器上請求的資源,這裏所說的資源可以爲任何數據,比如一張圖片,一段視頻,一個.html文件,一個entity記錄等;進而可以理解爲服務器端資源的狀態轉換,資源的狀態轉換可以歸納爲:
  1. 創建;
  2. 查詢;
  3. 更新;
  4. 刪除;
所以對應具體的開發而言,就是每個HTTP協議來講,每個URI對應一個唯一的資源;而POST, GET, PUT, DELETE操作分別對應以上提到的狀態轉換;最終實現大家約定比較標準的API接口;

  來發實例
現有一個數據庫表user;想實現符合RESTful規則的API;即對該表的CRUD操作;
則最終的技術輸出應該是四個HTTP接口:

POST http://hostname:port/MyProject/restful/user

    {user}//body爲user的json形式

GET http://hostname:port/MyProject/restful/user/{id}

PUT http://hostname:port/MyProject/restful/user

    {user}//body爲user的json形式

DELETE http://hostname:port/MyProject/restful/user/{id}

說明:示例中的{id}爲請求攜帶的參數;該參數可以爲任何類型;依請求而定;以上四個API是最標準的四個,當然可以根據需求擴展接口,但是改變的應當只是參數而已;

  基於以上闡述,總結如下:
REST四個基本原則:
1. 使用HTTP動詞:GET POST PUT DELETE;
2. 無狀態連接,服務器端不應保存過多上下文狀態,即每個請求都是獨立的;
3. 爲每個資源設置URI;
4. 通過XML JSON進行數據傳遞;
實現上述原則的架構即可稱爲RESTFul架構。

REST的優勢:
1. 互聯網環境下,任何應用的架構和API可以被快速理解;
2. 分佈式環境下,任何請求都可以被髮送到任意服務器;
3. 異構環境下,任何資源的訪問和使用方式都統一;

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