iT邦幫忙

2021 iThome 鐵人賽

DAY 26
0
自我挑戰組

打破結界~ Ruby on Rails ~面試題!系列 第 26

Day-26 請問 REST 是什麼? GET 和 POST 是什麼?

傳說中的 REST (表現層狀態轉換) 出現了!一個不太好解釋的名詞,但面試我還真的碰到了…初心者剛開始碰 Rails 一定會面對的 REST ,我們來看看到底是什麼?


根據維基的說法,REST 是表現層狀態轉換(英語:Representational State Transfer,縮寫:REST)(簡稱為 REST 或 RESTful)是Roy Thomas Fielding博士於2000年在他的博士論文[1]中提出來的一種全球資訊網軟體架構風格,目的是便於不同軟體/程式在網路(例如網際網路)中互相傳遞資訊。
**要注意的是 REST 是設計風格而不是標準。**REST 通常基於HTTP、URI、XML以及HTML這些現有的廣泛流行的協定和標準。
符合REST設計風格的 Web API 稱為 RESTful API 。它從以下三個方面資源進行定義:
直觀簡短的資源位址:URI,比如:http://example.com/resources。
傳輸的資源:Web服務接受與返回的網際網路媒體類型,比如:JSON,XML,YAML等。
對資源的操作:Web服務在該資源上所支援的一系列請求方法(比如:POST,GET,PUT或DELETE)。


實際的寫法,resources :users只要這樣寫,Rails 就會自動生出8條路徑和7個 Action 方法,不得不說 Rails 的厲害了吧!


GET是什麼?

簡單來說(只可讀取)
列出URI,以及該資源組中每個資源的詳細資訊(後者可選)。

POST是什麼?

簡單來說(可以修改)
在本組資源中建立/追加一個新的資源。該操作往往返回新資源的URL。


參考資料

1.https://zh.wikipedia.org/wiki/%E8%A1%A8%E7%8E%B0%E5%B1%82%E7%8A%B6%E6%80%81%E8%BD%AC%E6%8D%A2
2.https://railsbook.tw/chapters/11-routes.html#restful-routes


上一篇
Day-25 說明一下 Rails 的 MVC 架構是什麼?優點是?
下一篇
Day-27 請問 git rebase 和 git merge 是什麼?差別又在哪裡?
系列文
打破結界~ Ruby on Rails ~面試題!30

尚未有邦友留言

立即登入留言