REST URLdevise – 一个HTTP调用中的多个资源

可能重复:
Rails 3 Custom将多个ID作为参数

根据我的理解,获取资源的良好REST URL将如下所示:

/resource/{id} 

我遇到的问题是,我经常需要同时获取大量的资源,而不想为每个资源都分别进行HTTP调用

是否有一个整洁的URLdevise,将迎合这一点,或者这只是不适合REST API?

根据您的回答,您的问题的答案是创build一个新的资源,其中包含单一的信息集。 例如

 GET /Customer/1212/RecentPurchases 

在单个url中创build具有多个标识符的复合url会限制高速caching的好处,并增加服务器和客户端的不必要的复杂性。 当你加载一个有一堆graphics的网页时,你看不到

 GET /MyPage/image1.jpg;image2.jpg;image3.jpg 

这是不值得的麻烦。

我会说/resources/foo,bar,baz (分隔符可能会根据ID的性质和您的审美偏好,“ foo+bar+baz ”,“ foo:bar:baz ”等)而有所不同。 看起来有点“ foo/bar/baz (“bar of foo”)?

如果资源ID是数字的,也许,即使使用/resources/1,3,5-9,12这样的范围快捷方式

或者,如果您需要查询不完全具有特定ID的资源,但具有特定属性的资源组,可能类似于/resources/state=complete/size>1GiB/!active/

我过去曾经用过这样的东西。

 /resources/a/d/ 

那会在x和y之间返回一个列表。

就像是

 <resources> <resource>a</resource> <resource>b</resource> <resource>c</resource> <resource>d</resource> </resources> 

你也可以把更高级的search放到URL上,这取决于真正的资源。

也许你可以试试

[GET] /购买/用户:123;极限:30; sort_date:DESC