针对多个ID的Restful范围查询

针对多个ID的Restful范围查询,rest,restful-architecture,Rest,Restful Architecture,我正在考虑设计一个API,它不仅支持访问单个资源,还支持同时访问多个资源 例如,每个用户有20个朋友 GET foobar.com/users/me/friends/1 将返回1号朋友。获取所有用户也没有问题,但是如果我想获取多个特定用户,我可以使用如下查询吗 GET foobar.com/users/me/friends?id=1,3,5-9,20 还是有更好的方法来实现这一点 谢谢大家 缓存友好的方法是为每个用户发出一系列GET请求。您的方法的问题在于,这两个请求是分开缓存的,尽管返回的

我正在考虑设计一个API,它不仅支持访问单个资源,还支持同时访问多个资源

例如,每个用户有20个朋友

GET foobar.com/users/me/friends/1
将返回1号朋友。获取所有用户也没有问题,但是如果我想获取多个特定用户,我可以使用如下查询吗

GET foobar.com/users/me/friends?id=1,3,5-9,20
还是有更好的方法来实现这一点


谢谢大家

缓存友好的方法是为每个用户发出一系列
GET
请求。您的方法的问题在于,这两个请求是分开缓存的,尽管返回的大多数数据是相同的:

GET foobar.com/users/me/friends?id=1-10
GET foobar.com/users/me/friends?id=1-9
如果/friends返回的结果集合包含非常有限的数据和超链接,以获取朋友的完整数据,那么您的方法是合理的。如果无法在客户端缓存朋友数据,并且您不支持有条件的
GET
s,那么也应该可以-但是如果您稍后添加这些功能,您将无法在这里利用它们。如果集合正在为每个朋友返回完整的数据集,请考虑利用缓存/条件<代码>获取< /代码> s,并为每个用户发布单独的请求。 不要说“性能”,除非您在真实环境中进行了测试,并且出现了一个经验证的问题!:-)