2012-05-28 49 views
0

假設我有一個URL作爲以下,例如雷斯特夫爾地址圖案

  1. http://www.company.com/categories#列出所有類別
  2. http://www.company.com/categories/car#列出所有汽車
  3. http://www.company.com/products/303#唯一ID = 303

我的問題是汽車,爲2 http://www.company.com/categories/car,是沒有更好的我使用它的複數形式?

例如

http://www.company.com/categories/cars 
+0

定義 「更好」 - 對於誰/什麼目的更好? – Widor

+0

@Widor,我的意思是更標準,因此寧靜 – Howard

+0

這是一個代碼相關的問題呢?如果我正確理解你的問題,它似乎不是。 – poepje

回答

2

爲了2.更REST風格的圖案,你會發出GET請求來檢索汽車的名單。

在這種情況下,這將是有意義的使用複數:

http://www.company.com/categories/cars 

這讓開放的可能性,它與具體發放(單數)汽車記錄:

http://www.company.com/categories/cars/ferrari 
+0

你提出了一個很好的觀點!那麼,爲什麼不是http://www.company.com/categories/cars/ferraris?如果我還有更多的類別,比如奢侈品,Coupe等。似乎我認爲如果一個類別沒有更多的子類別,單數也是有意義的,但是由於我們無法預測未來,因此總是複數更加靈活。 – Howard

+0

好吧,如果你想讓_Ferraris_作爲汽車的一個類別,並且有許多模型返回,那麼你可以將它多元化,這仍然是有道理的。但對於任何只能返回單個記錄的東西(_Person_將是這方面的一個更好的例子),然後堅持單數。 – Widor

4

這是正確的,如果你使用複數爲你的資源。

http://www.company.com/categories/cars 

,因爲汽車是類別的子資源......所以會更好,我建議你應該暴露你的汽車資源爲specifice類別的子資源:但是,如果你喜歡使用的URL它不叫寧靜:

http://www.company.com/categories/123/cars #get all cars under category which id = 123 
+0

這不是查詢字符串的設計目的嗎?即'GET http://www.company.com/cars?category_id=123#獲取所有類別爲id = 123'的汽車。 – FtDRbwLXw6

+0

是的,你也可以使用它。但是,上面的問題沒有談到查詢字符串。 –

0

它完全依賴於你和你的應用程序。如果您有多個REST服務,則還可以使用carList而不是汽車或汽車。這是有道理的,而不是混淆。確保在所有REST URI中統一。

0

認爲它是一個Windows資源管理器的目錄。如果您正在當地文件夾中組織汽車,法拉利會在哪裏?

另一個要考慮的是專門設計的URI,你有更多的名詞和動詞少PUT和POST請求。

0

複數。 url中的「cars」元素應該反映類別的名稱。類別的名稱根據我的經驗通常是複數,因爲它們識別一組多個實體。例如: - transporation設備類有:汽車,飛機,自行車和滑板。

東西是一輛汽車,它屬於類別「汽車」。

尼斯的例子是在維基百科的命名約定爲組類別:

設置類被命名爲一類後(通常在複數)。例如,類別:法國的城市包含的主題是法國城市的文章。

https://en.wikipedia.org/wiki/Wikipedia:Set_category#Set_category

0

一個類別englobes了很多項目。所以,是的。 汽車將有更多的意義比

http://www.company.com/categories/cars/mitsubishi/lancer (if you have more categories) 

OR

http://www.company.com/categories/cars/lancer