Representational State Transfer(REST),中文譯為「具象狀態轉換」,是植基於HTTP之上的一種提供全球資訊網路的軟體建構風格。
那REST與RESTful有什麼關係?不過就是後面多了英文形容詞的ful,有差嗎?
妳真美麗。You are so beautiful.
這真表現層狀態轉換。 It is so RESTful.
(這個例子只是為了引出ful的形容詞概念,不是很正確)
REST是一種表現概念,因此遵守這種表現概念的設計我們稱之為RESTful。
Wiki的定義
與網際網路相連的端系統提供了一個應用程式介面(英語:Application Programming Interface,縮寫:API;又稱為應用程式編程介面)是軟體系統不同組成部分銜接的約定。
談到API,這是一項後端工程師必備的基本技能,無論是熱門的串接第三方API,還是Web API 的開發,必須懂得如何打造API,才能透過API與App或其他伺服器溝通,是前後端的技能的分水嶺。
簡單來說,今天我到轉運站要搭車到高雄(發出request),櫃台人員告知我要到10號候車處。此時轉運站本體就是Router(路由器),轉運站裡的各家客運公司提供的路線就像API,它控制所有路由並順利完你的搭乘請求(response),將你從台北帶到高雄。
使用RESTful風格的API就是RESTful API,有說等於沒說,那我們用簡單的增刪改查來實現例子。
一般 API (命名主觀,沒有充分利用HTTP METHOD)
得到文章
/api/get_post/
新增文章
/api/upload_post/
更新文章
/api/update_post/
刪除文章
/api/delete_post/
RESTful API(優雅簡潔的方式,清楚簡短,可讀性高)
得到所有文章
/api/posts/ (GET)
新增文章
/api/posts/ (POST)
更新文章
/api/posts/ (PUT)
刪除文章
/api/posts/ (DELETE)
統整一下RESTful API:
URI | description | HTTP Method |
---|---|---|
api/posts | 得到所有文章 | GET |
api/posts | 新增文章 | POST |
api/posts | 更新文章 | PUT |
api/posts | 刪除文章 | DELETE |
RESTful API 使用了 HTTP Method 來當作「動詞」,還記得有哪些嗎?請見上一篇,透過這些動詞,我們就可以做不同的動作。
今天先到這裡,明天要說的是Web API測試工具-Postman。
週六見~
參考資料:
API 實作(一):規劃 RESTful API 要注意什麼
[不是工程師] 休息(REST)式架構? 寧靜式(RESTful)的Web API是現在的潮流?
Laravel 建立 RESTful API
淺談 REST 軟體架構風格 (Part.I) - 從了解 REST 到設計 RESTful!
Please, don’t call them RESTful
認識 RESTful API
What is REST? Slightly confused [closed]