2015-05-31 50 views
0

有答案,但我的問題是不同的,因爲我試圖找出一個uri當我有一個產品的細節或當我必須返回一個細節產品加上它的客戶。我需要一個標準的解決方案來跟蹤4個API調用。我需要一個標準的命名規則來處理這個特定的情況,請從下面進行修改。一些更多的幫助命名約定複數與奇異

多元(以s)

GET /products - 列出所有產品

GET /products/1 - 產品的詳細ONLY(無客戶)

奇異

GET /product/1 - 細節一個產品加上它的顧客

GET /product/1/customers僅限客戶的產品1

從上面我試圖找到這兩個解決方案。

GET /products/1 - 產品的詳細ONLY(無客戶)

GET /product/1 - 產品的詳細信息,再加上它的客戶

回答

1

不,不使用differen網址,有和沒有客戶的產品進行區分。使用content negotioation

要獲得產品與嵌入式客戶,使用一個Accept頭:

GET /products/1 
Accept: application/vnd.com.example.rest.customer.long+json 

要獲得產品沒有客戶,使用不同的Accept頭。

GET /products/1 
Accept: application/vnd.com.example.rest.customer.short+json 

但總使用相同的URL因爲你requeting 相同的資源。要請求此網址的不同表示,請使用內容協商。

+0

非常感謝,我注意到你使用了複數形式,'GET/products/1',我把它們混淆了,是不是單用於查詢單個項目?在這種情況下'GET/product/1' – user2727195

+0

我會命名資源'/ products'(複數),因爲這是所有產品的*集合資源*。 –

+0

好的,你會使用'DELETE/products/1','PUT/products/1','POST/products/1'(複數)嗎? – user2727195