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