iT邦幫忙

DAY 1
6

從無到有打造 RESTful API service系列 第 1

[API] (1) - 定義 1 - 什麼是 REST/RESTful ?

小弟的規劃表 - http://blog.kerkerj.in/blog/2014/11/01/planning/

好讀版 - http://blog.kerkerj.in/blog/2014/10/02/api-d1/

Representational State Transfer,簡稱REST,它是一種網路架構風格,他並不是一種標準。

而 RESTful 可以這樣子想像: 美麗 (Beauty) 的事物可以稱為 Beautiful; 設計為 REST 的系統就可以稱為 RESTful

以 API 而言,假設我們正在撰寫一組待辦事項的 API,
可能會有以下方式來作為 API 的 interface:

獲取使用者資料 /getAllUsers
獲取使用者資料 /getUser/1
新增使用者資料 /createUser
更新使用者資料 /updateUser/1
刪除使用者資料 /deleteUser/1

若是以 REST 風格來開發 RESTful API 的話:

獲取使用者資料 /GET /users
獲取使用者資料 /GET /user/1
新增使用者資料 /POST /user
更新使用者資料 /PUT /user/1
刪除使用者資料 /DELETE /user/1

兩者差異是在於 RESTful API 充分地使用了 HTTP protocol (GET/POST/PUT/DELETE),達到:

  1. 以直觀簡潔的資源 URI
  2. 並且善用 HTTP Verb
  3. 達到對資源的操作
  4. 並使用 Web 所接受的資料類型: JSON, XML, YAML 等,最常見的是 JSON

通常是使用 HTTP, URI, JSON, HTML 這些現有廣泛流行的協議和標準,且使用 HTTP status code 來代表該資源的狀態。
框架中強制使用 REST 風格的最有名的應該就是 Ruby on Rails 了!
p.s. 因為 REST 並非是一種標準,因此有時候也不一定非得要照著 REST 來做,
只是在資源的操作面上,可以設計成這類的風格,以達到簡潔易懂,並且可重用。

下一篇會定義 REST 的要求與優點


下一篇
[API-d2] - 定義 2 - RESTful 的優點與要求
系列文
從無到有打造 RESTful API service30

尚未有邦友留言

立即登入留言