iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 9
0
自我挑戰組

Ruby and Rails 的二三事系列 第 9

Ruby on Rails 的二三事 - Day09 REST 和 RESTful

  • 分享至 

  • xImage
  •  

昨天稍微介紹了一下Rails的主角:Routes 和 MVC,

今天就稍微解釋一下 REST 和 RESTful 吧!


關於 REST

  • REST的全文是:REpresentational State Transfer,
    是由Roy Thomas Fielding博士於2000年所提出的一種軟體架構風格。

  • 通常會透過使用HTTP協議(在技術上也可以使用其他協議)來實現。

  • REST本身不是協議,它只是一組慣例,遵循這些慣例可以使
    不同的Web的應用程序或API之間維持資源(resources)命名的簡單性和一致性。

  • 透過資源命名的簡單性和一致性,讓不同軟體/程式在網路(例如網際網路)
    中互相傳遞資訊能更加便利。


關於 RESTful

符合REST設計架構,並朝這個理念而設計出來的系統,比如說 Ruby on Rails,就可以被稱為是RESTful的系統,表示系統在設計上遵循著 REST 的理念與原則。

在RESTful架構中,標準HTTP方法(Verb)與統一資源標識符(URI)結合使用,
以在客戶端和服務器之間傳遞請求和響應。
每個URI描述一個獨立的操作,並包含滿足請求所需的所有信息(資料)。

還記得昨天的那張圖嗎?沒關係,看下面的表格也可以

Verb URI Controller#action
GET /products products/index
POST /products products/create
GET /products/new products/new
GET /products/:id/edit products/edit
GET /products/:id products/show
PATCH /products/:id products/update
PUT /products/:id products/update
DELETE /products/:id products/destroy

透過VERB 和 URI 的組合,每個組合要對資料所進行的操作被清楚的區隔開來。


同場加映:

補上自己在查資料時,熊熊看不懂的安全方法冪等方法,算是幫自己做個紀錄:

safe & idempotent,這兩個是HTTP狀態描述的專有名詞。

  • 「safe」是指該操作不會改變原本的資源狀態,並且同樣的結果是可以被快取(Cache)的。例如: 查看訂單是不會改變訂單本身紀錄。

  • 「idempotent」是指該操作不管做1遍、2遍或多遍,都會得到同樣的資源狀態結果。

GET 是 安全方法同時也是冪等方法
PUT 和 DELETE 是冪等方法


以上,就是現階段,我對REST和RESTful的了解。
鐵人賽,我們明天再見。

參考資料:
什麼是 REST? RESTful?
REST - Wiki
淺談 REST 軟體架構風格
HTTP 請求方法 (Request Method)
HTTP方法的安全性和幂等性


上一篇
Ruby on Rails 的二三事 - Day08 Rails (Routes 和 MVC)
下一篇
Ruby on Rails 的二三事 - Day10 其實我不懂Case...When
系列文
Ruby and Rails 的二三事19
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言