iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 3
0

為甚麼需要 Restful API ?


以往在設計 API,會像以下這個設計,以一個文章列表為例 :

    GET - /getArticle  // 取得所有文章
    
    POST - /createArticle // 建立新文章
    
    POST - /updateArticle/3 // 更新 id = 3 的文章
    
    POST - /deleteArticle/3 // 刪除 id = 3 的文章

這樣會有什麼問題呢 ?


我們把要做什麼事情都定義在 URL了,如果名稱一長確實一時會不太好閱讀,
而 RESTful 規範利用 HTTP 定義的幾種 Method,去對應執行各種不同的動作,
同時也精簡了 URL的名稱,以上 Router 轉換成 RESTful 會長這樣 :

    GET  /articles  // 取得所有文章
    
    POST  /article // 建立新文章
    
    PATCH /article/3 // 更新 id = 3 的文章
    
    DELETE /article/3 // 刪除 id = 3 的文章

其實以上的 Method 也就是對應到也是平常寫程式最基本的 CRUD,所以符合設計原則可以說他是 RESTful API 。

C - Create
R - Read
U - Update
D - Delete

如此一來,使用 RESTful API 確實讓 URL,變得更加簡潔,需要執行甚麼動作,僅透過
Method 去相對應做的事情,但 RESTful 也並不是沒有缺點,在取得資料是有相依性的情況,像是取得文章的作者詳細資訊就必須先呼叫 /GET - /articles/{ID},在去呼叫 GET - /users/{userID},分別發 API 去取得需要的資料,所以接著 GraphQL 就興起解決這類問題,能夠依照條件去進行關聯式的查詢,並回傳需要的資料結構,GraphQL 不懂沒關係,因為本篇主要是講 RESTful,這裡只是提一下 RESTful 有所不足的地方。

結論


Restful 是甚麼?

是一種設計規範,依據 HTTP 定義的各種 Method 可以做相對應的事情
最常被使用的是以下幾種 :

GET - 讀取資料
POST - 新增資料
PATCH/PUT - 修改資料
DELETE - 刪除資料


上一篇
Day 2 環境建立
下一篇
Day 4 來建立第一個 Server
系列文
30 天 node.js 學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言