2011-10-03 50 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间接检索的汽车列表。