REST全名為Representational State Transfer,它是一種軟體架構風格,不是一種標準。 以REST架構設計的系統就可以稱為 RESTful,就像是美麗 (Beauty) 的事物可以稱為 Beautiful。
假設我們正在開發某個專案的後端Service,可能會設計出這樣的API:
- 獲取所有使用者 /getAllUsers
- 獲取特定使用者 /getUser/1
- 新增使用者 /createUser
- 更新特定使用者 /updateUser/1
- 刪除特定使用者 /deleteUser/1
像這種API就不是RESTful API了,這些API可能全都是用POST,也能達到目的,但就會變成出現像是updateUser這種冗長的命名,而且如果是複雜一點的系統,甚至有可能會花很多時間在想怎麼命名比較好。
若是以 REST 風格來開發 RESTful API 的話,就會變成這樣:
- 獲取所有使用者 /GET /users
- 獲取特定使用者 /GET /user/1
- 新增使用者 /POST /user
- 更新特定使用者 /PUT /user/1
- 刪除特定使用者 /DELETE /user/1
善用 HTTP method這種有意義的動詞,可以幫助我們很快速的理解這個API是要幹嘛,例如看到GET http://www.xxx.com/user/1,可以很自然的知道,這個API會回傳id=1的使用者資料。
因此,遵照REST風格設計的API,不只看起來簡潔且好理解,這樣的設計也比較好維護呢!