2010-12-20 60 views
1

我有兩個RESTful API設計問題。假設我有一個水果站Web應用程序。我想回到所有我隨身攜帶的水果和計數的水果信息,和我一起做:RESTful網址是否在對象之間沒有ID的情況下有效?

http://myfruitstand.com/fruits 

問題1: 如果我有10個橙子,那麼我想,我可以獲得關於與特定的橙色信息:

http://myfruitstand.com/fruits/oranges/3 

不過是上面的網址REST風格的 - 不要我需要「果實」和「桔子」之間的ID,以符合REST標準?或者是這個帶有'fruits'的網址緊跟着子類'oranges'好嗎?

問題2: 同樣,如果我想對我的橘子的論壇(不特定的橙色),我可以把它放在這裏:

http://myfruitstand.com/fruits/oranges/comments 

同樣是上面的URL的RESTful因爲'oranges'和'comments'之間沒有id(當然這裏的id是暗示關於特定橙色的討論,我不想這麼做)?在這裏,沒有任何子類理性的'桔子'後面緊跟着'評論'。

由於事先查

回答

0

是因爲它們是確定性的所有URL寧靜長。 Restful更多的是關於你正在使用的http方法(例如DELETE刪除,POST編輯,GET讀取,...)。

0
  1. 我不相信你的使用說明,你需要一個水果資源的ID。
  2. 同樣沒有第二個需要的id。

只要你的網站建模你的對象組織,那麼我相信你很好去。另外,我個人的感覺是,如果您發現一個案例,您需要稍微離開任何規範以滿足您的應用需求,那麼這是一個合理的做法。不要讓堅持這種'模式'干擾完成工作。例如,在RESTful上下文中,有時您會執行與DELETE/PUT/POST/GET動詞下的某些對象相關的操作。爲了保持完美的RESTfulness,你把那些東西放進那裏?

我現在躲在我的辦公桌後面,以免被REST風格的大師/宗教家,將不可避免地給我打了現在:)被砸暈

+0

謝謝,我不會告訴極端分子在其下隱藏:-) – 2010-12-20 17:30:17

1

這將是更多的REST風格的資源收集,構建/ id對,例如/水果/:ID1 /項目/:ID2,其中ID1 =橙,ID2 = 3

/fruits/orange/items/3 

然後,如果你失去了「S」的橙子,因爲你是在回答第二個問題,也將是正確的將橙色視爲資源的一個實例,而不是資源集合。

/fruits/orange/comments 

例如幻燈片48 of http://www.slideshare.net/Wombert/phpnw10-designing-http-services-and-restful-interfaces

+0

辦公桌所以我想這是$ 64個問題 - 是否將橙色視爲資源或類型。 Arghhh ....我已經在多個方面遇到了這個問題,並且在通過REST公開我的模型時似乎遇到了問題...謝謝,Andy – 2010-12-20 15:15:01

+0

我會看到它的方式是,如果有資源與一個實體,它是一個父資源的一個項目,而不是一個集合。我只是更新措辭,以減少我的意思。 – Andy 2010-12-20 15:20:31

1

剛纔一直在問自己有關REST風格的問題。但我認爲這是:

如果是水果店,是不是'水果'的暗示?如何簡單地說:

/橙/ {ID}

或者:

/水果/(編號)

這僅僅是類型橙色的水果。

/水果?類型=橙色可以返回你橘子名單的意見

相關問題