2013-05-21 80 views
1

下面是一個例子網址:描述REST風格的URL

/users/123/comments 

在此基礎上的網址,其中任期將最好的形容users?是users的資源還是它的一部分資源。那部分的名字是什麼?

對於其他部分也是同樣的問題。哪些術語最能描述123comments

是否有一個術語會引用RESTful URL的第二部分?它將描述/users/123中的123/me/purchases中的purchases

回答

0

REST是一個面向資源的。網址代表資源。

在你的榜樣,/users/123/comments

  • users是一種資源。
  • 123是用戶的唯一標識符。
  • 在這種情況下,評論是用戶的一個子資源,但他們很可能是對自己的資源(例如,呼叫/comments/{id}

關於你的第二個問題,爲/me/purchases格式是不與/users/123相同。而/me/purchases可能是類似的東西/users/{myid}/purchases短網址,其中purchases網友(也可能是一個由/purchases/{id}上也是自己的,可用的資源)的子資源。


欲瞭解更多信息,here is a video,不直接關係到你的問題,但是這是很有見地的約REST Web服務非常有趣。

0

在您的示例中,http://example.org/users/123/comments指向一個資源。完整的URI是資源的標識符。

讓我給你舉一個極端的例子,

/users/123/comments.xml

/users/123/comments.json

是兩個不同的資源。

查詢字符串還確定了資源,所以

/users/123/comments?format=xml

/users/123/comments?format=json

也有兩個不同的資源。

資源不映射到實體。資源是您希望通過HTTP公開的「一些概念」,並且已經通過URI進行標識。

在RESTful系統中URI是不透明的制度設計。你係統的客戶端不應該試圖從你的URI部分推斷出你的意思。一臺服務器可以設置規範,以幫助它建立一個URI空間,但這些服務器的私有實現細節。

爲REST URL沒有這樣的事情。這個術語是一個框架設計師的作品,只會讓你迷惑。

+1

我不同意'format = xml'格式= json' format = html'指向不同的資源。他們指向相同的資源,但指向該資源的不同表示。我可能是錯的,但這是我以前見過的 –

+0

@HugoDozois這裏http://tech.groups.yahoo.com/group/rest-discuss/message/11147是Roy Fielding從2008年開始的一篇文章,他描述兩個URI只通過「擴展名」與「特定於格式的**資源**」不同 –