RESTful API的理解

技術交流的時候遇到了這樣的一個問題,被問及開發中用到的是不是Restful API,我說的是,我們現在用到的不屬於完全是Restful API。因爲我瞭解到的Restful API,是 通過具體的URI定位符,找到對應的資源,然後以固定的格式返回數據,這樣的纔是Restful API。然而在我模糊的表達中,對方聽出來的是,我現在開發的API依然屬於Restful API。那麼什麼纔是真正的Restful API呢,今天我想好好總結一下。(之前學習東西總是,用到了就去搜索,然後很少總結,類似這種不影響我開發的概念性東西,只是大致搜索後,有了瞭解,不求甚解的。現在看來還是有必要弄的更清楚的,因爲在討論的時候,容易出現偏差,描述不清楚,對於學習其他知識的時候也是不利的。)
此處說明一下,我看到的是如何使用Retrofit請求非Restful API,這個讓我理解了什麼不是RESTful API,結果是不對的。不過不要緊,這篇博客的重點不是這個。

什麼是REST?

可以總結爲一句話:REST是所有Web應用都應該遵守的架構設計指導原則。
Representational State Transfer,翻譯是”表現層狀態轉化”。
面向資源是REST最明顯的特徵,對於同一個資源的一組不同的操作。資源是服務器上一個可命名的抽象概念,資源是以名詞爲核心來組織的,首先關注的是名詞。REST要求,必須通過統一的接口來對資源執行各種操作。對於每個資源只能執行一組有限的操作。(7個HTTP方法:GET/POST/PUT/DELETE/PATCH/HEAD/OPTIONS)

什麼是RESTful API?

符合REST架構設計的API。

總結

符合REST設計標準的API,即RESTful API。REST架構設計,遵循的各項標準和準則,就是HTTP協議的表現,換句話說,HTTP協議就是屬於REST架構的設計模式。比如,無狀態,請求-響應。。。

參考:
理解本身的REST架構風格
http://www.infoq.com/cn/articles/understanding-restful-style/

理解RESTful架構
http://www.ruanyifeng.com/blog/2011/09/restful.html

Restful API設計指南
http://www.ruanyifeng.com/blog/2014/05/restful_api.html

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