iT邦幫忙

2023 iThome 鐵人賽

DAY 26
0
Modern Web

那些你可能要知道的前端知識系列 第 26

【day26】什麼是 RESTful API

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20230929/20148303nogJMZyOoh.png


什麼是REST

REST(Representational State Transfer)是一種架構的風格,REST的出現在於,管理網路上複雜的通訊,希望在 Web 服務中被廣泛採用,以下是 REST 的一些主要原則:

  • 無狀態性:伺服器不會儲存client端的狀態,每個請求都包含所有必要的訊息,以便讓伺服器可以處理它,提高了可擴展性,所以client端可以按任何順序去請求資源
  • 統一介面:提供統一的操作風格,使用HTTP的請求方法「GET, POST, PUT, DELETE」來操作
  • 分層系統:系統可以分為多個層次,每一層都只需要了解相鄰層次的服務,有助於提高系統的模組化和可維護性
  • 可緩存(快取):客戶在第一次獲取資訊時會快取資訊,後續會直接使用快取中獲得資訊。(例如:網站中每個頁首、頁尾、LOGO 等),以改善性能和響應時間
  • 伺服器架構:client端和server端之間可以分開獨立運作,也可以獨立開發

什麼是API

API (Application Programming Interface)是應用程式介面,用來和程式間溝通的抽象概念
舉例來說:我們進到餐廳,向服務生點餐後,服務生接著將餐點送來我們桌上,我們並不需要知道餐點如何製作。
只要了解我們點餐(發出請求),拿到餐點(接收結果),而服務生則是介於客人與廚房之間的管道(應用程式介面)

而API扮演的角色就是扮演請求結果的規範
Request:前端向後端發送請求資料
Reponse:後端向前端回傳結果

這邊推薦一部以圖像化講解API的影片,也可以參考看看~

Yes


什麼是 RESTful API

RESTful API 代表遵循 REST 架構風格的 API,基於HTTP方法來進行操作( GET, POST, PUT, DELETE 等),並且它是無狀態的,代表伺服器不會保存client端的任何狀態訊息,必要的訊息都包含在每一個請求中。

RESTful API包含的請求方法包含了以下規範

  • 唯一資源識別符:通常使用統一的 URL 來執行資源識別
    ✨ 使用清楚和一致的 URI 路徑來表示
    例如:/users 可以用來表示所有用戶的集合,而 /users/123 可以用來表示 ID 為 123 的特定用戶
    ✨ URL名稱盡量避免使用動詞,使用複數名詞表示
    例如:GET /orders(獲取訂單列表),POST /orders(建立新訂單)
    ✨ 避免使用不必要的路徑
    例如:使用 /users/123 而非 /api/v1/getUserById/123

使用HTTP方法來操作
GET:獲得資源
POST:新增資源
PUT:修改資源
PATCH:修改部分資源
DELETE:刪除資源

HTTP 狀態碼回傳結果
1xx:代表請求已被接受,但需要繼續處理
2xx:表示請求成功
3xx:代表 Client 需要再進一步的操作才能完成 Request,通常用來重新導向。
4xx:Client 端錯誤,包含未授權、無資源、參數錯誤等。
5xx:Server 端錯誤,無法完成對 Request 的處理


因為RESTful 的網址變化很有規律,因此近年有愈來愈多人使用 RESTful 設計風格,但它是一種風格,而不是標準,如果偶爾出現特例也是沒關係的


參考文章
什麼是 API? RESTful API 該怎麼理解? (12)


上一篇
【day25】TCP、UDP 是什麼
下一篇
【day27】JSON是什麼
系列文
那些你可能要知道的前端知識30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言