1. 程式人生 > >關於Restful風格使用的一些誤區

關於Restful風格使用的一些誤區

轉載請註明出處:http://blog.csdn.net/dongdong9223/article/details/83025876
本文出自【我是幹勾魚的部落格

網上對Restful風格的介紹有很多,比如阮一峰老師的理解RESTful架構RESTful API 設計指南等,大家可以參考。這裡主要說說Restful使用中的一些誤區。

1 URI包含動詞。

這是在使用Restful風格開發時最常見的一種設計錯誤。Restful認為客戶端訪問伺服器時,其實是在訪問資源(Resources),什麼是資源(Resources)?所謂"資源",就是網路上的一個實體,或者說是網路上的一個具體資訊。資源可以是一張圖片、一段文字、一首歌曲、一種服務,總之就是一個具體的實在。你可以用一個URI(統一資源定位符)指向它,每種資源對應一個特定的URI。要獲取這個資源,訪問它的URI就可以,因此URI就成了每一個資源的地址或獨一無二的識別符。

因為"資源"表示一種實體,所以應該是名詞,URI不應該有動詞,動詞應該放在HTTP協議中。

舉例來說,某個URI是:

/posts/show/1

其中show是動詞,這個URI就設計的是有問題的,正確寫法應該是:

/posts/1

然後用使用GET方法來表示show。

2 URI中加入版本號

還有一個設計誤區,就是在URI中加入版本號:

http://www.test.com/app/1.0/foo
http://www.test.com/app/1.1/foo
http://www.test.com/app/2.0/foo

因為不同的版本,可以理解成同一種資源的不同表現形式,所以應該採用同一個URI。版本號可以在HTTP請求頭資訊的Accept欄位中進行區分:

Accept: vnd.example-com.foo+json; version=1.0
Accept: vnd.example-com.foo+json; version=1.1
Accept: vnd.example-com.foo+json; version=2.0

參考

理解RESTful架構

RESTful API 設計指南

什麼是java REST與RESTFUL

如何給老婆解釋什麼是Restful

【Restful】三分鐘徹底瞭解Restful最佳實踐