REST(Representational State Transfer)是一種架構的風格,REST的出現在於,管理網路上複雜的通訊,希望在 Web 服務中被廣泛採用,以下是 REST 的一些主要原則:
API (Application Programming Interface)是應用程式介面,用來和程式間溝通的抽象概念
舉例來說:我們進到餐廳,向服務生點餐後,服務生接著將餐點送來我們桌上,我們並不需要知道餐點如何製作。
只要了解我們點餐(發出請求),拿到餐點(接收結果),而服務生則是介於客人與廚房之間的管道(應用程式介面)
而API扮演的角色就是扮演請求與結果的規範
Request:前端向後端發送請求資料
Reponse:後端向前端回傳結果
這邊推薦一部以圖像化講解API的影片,也可以參考看看~
RESTful API 代表遵循 REST 架構風格的 API,基於HTTP方法來進行操作( GET, POST, PUT, DELETE 等),並且它是無狀態的,代表伺服器不會保存client端的任何狀態訊息,必要的訊息都包含在每一個請求中。
RESTful API包含的請求方法包含了以下規範
使用HTTP方法來操作
GET:獲得資源
POST:新增資源
PUT:修改資源
PATCH:修改部分資源
DELETE:刪除資源
HTTP 狀態碼回傳結果
1xx:代表請求已被接受,但需要繼續處理
2xx:表示請求成功
3xx:代表 Client 需要再進一步的操作才能完成 Request,通常用來重新導向。
4xx:Client 端錯誤,包含未授權、無資源、參數錯誤等。
5xx:Server 端錯誤,無法完成對 Request 的處理
因為RESTful 的網址變化很有規律,因此近年有愈來愈多人使用 RESTful 設計風格,但它是一種風格,而不是標準,如果偶爾出現特例也是沒關係的
參考文章
什麼是 API? RESTful API 該怎麼理解? (12)