首先要知道什麼是 REST (Representational State Transfer) ,提出者是 HTTP 規範的主要作者 Roy Fielding 博士,在他的論文中提出,又稱為具象狀態傳輸。
透過網路想跟伺服器拿資訊,就會使用 Get ,如果想要輸入資訊的話,就會用 Post ,當然還不止,之前也有寫過類似的文章,請參考: Get跟Post有什麼不同?
而利用這種根據你要的方法給路徑的網站語意化,我們就稱為 RESTful 風格,HTTP method 都是有意義的動詞,如 GET、POST、PATCH、DELETE 等,因此 RESTful 的設計運用動詞的組合,來呈現出對資源的操作方法,ROR 中的 CRUD 就是引入這種方式,讓路徑可以符合 RESTful 的概念。
例如 :
- 瀏覽全部資料:GET + 資源名稱 (action)
- 瀏覽特定資料:GET + 資源名稱 + :id
- 新增一筆資料:POST + 資源名稱
- 修改特定資料:PUT + 資源名稱 + :id
- 刪除特定資料:DELETE + 資源名稱 + 🆔
使用這種風格設計的網站有什麼好處呢?(容易被別人猜到路徑(欸))
- 在專案協作時,大家都有共識每條路徑都照著規則,命名一致
- 工程師不用花費心力,去思考每個路徑的名稱要叫什麼炫砲名
- 客戶可以推測出一些相關 API 路徑
- 他是 ROR 慣例(?)
當然有時候你還是會想要調皮跳出慣例做一點事情,但也無所謂,客製化都是可以的,只是大部分的時候,照著慣例走會舒服很多(尤其對於一致性有強迫症的人),這樣而已(?)