2011-10-03 67 views
1

可能重複:
Rest URL design - multiple resources in one http callREST的Web URI設計單/多資源GET

我已經看過了這個網站,淨答案,但還沒有完全想通了解決這個問題的最好方法。

舉個例子,說我有以下的REST API

單一資源REST API很簡單:

/車/ {ID} - >由ID獲取汽車

汽車名單

多個資源得到:

/車; IDS = {ID1,ID2,ID3等} - >由IDS

/汽車獲得汽車的列表;列表ID = {listId};計數= 5 - >得到汽車由下式定義親戚= {ID};列表ID在雲

/汽車救 數= 5 - >獲取相關的由id指定的汽車 汽車

名單-ID可以指定要返回的元素的任意列表。 /汽車將僅返回該列表中定義的汽車。

注意:matrix params relatives,ids和list-id不能全部用於單個GET請求。例如,如果id和list-id都出現,那麼id將優先。

問題:這是否應該重新設計?如果是這樣,怎麼樣?謝謝。

+1

這可能是有用的http://stackoverflow.com/questions/969585/rest-url-design-multiple-resources-in-one-http-call – hvgotcodes

+0

馬克,爲什麼不是問題也得到合併?這不是一個完全相同的問題,而是上述問題的點綴(順便說一下,這個鏈接不是很具描述性)。 –

+0

嗯,這給了我更多的思考,但它似乎也是我現有的設計不是一個真正的REST風格的網頁設計?感謝那個鏈接。 – KnowledgeSeeker777

回答

1

如果您僅將一輛汽車作爲列表ID查看汽車,該怎麼辦?列表ID然後可以指一輛汽車或多輛汽車。爲此,列表ID和汽車ID必須共享相同的「域」。一個人不會優先於另一個,因爲他們實際上是同一件事 - 汽車列表。

GET/car/{id}可能是一輛汽車或一輛汽車列表。

GET/car/{id}/related將返回與汽車ID中的汽車列表相關的那些汽車的列表。但是這個列表將沒有它自己的ID(還)。

POST/car/{id}/related將返回汽車列表的列表ID。然後可以與GET/car/{id}一起使用,以返回也通過GET/car/{id}/related間接檢索的汽車列表。