我正在设计一个API,它不仅支持对单个资源的访问,而且支持同时访问多个资源。
例如,每个用户有20个朋友。
GET foobar.com/users/me/friends/1
得到所有的用户也没有问题,但是如果我想得到多个特定的用户,我可以使用像下面这样的查询吗?
GET foobar.com/users/me/friends?id=1,3,5-9,20
还是有更好的方法来实现这一点?
谢谢你们!
发布于 2014-07-25 15:25:05
对缓存友好的方法是发出一系列GET
请求,每个用户一个请求。您的方法的问题是,这两个请求是单独缓存的,尽管返回的大多数数据是相同的:
GET foobar.com/users/me/friends?id=1-10
GET foobar.com/users/me/friends?id=1-9
如果/friends用非常有限的数据和超链接返回一组结果以获取朋友的完整数据,那么您的方法是合理的。如果客户端不能缓存朋友数据,并且不支持有条件的GET
,也应该是可以的--但是如果以后添加了这些特性,就不会在这里利用它们。如果集合返回每个朋友的完整数据集,请考虑利用缓存/条件GET
,并为每个用户发出单独的请求。
不要说“性能”,除非你在一个真实的环境中进行了测试,并且有一个经过验证的问题!:-)
https://stackoverflow.com/questions/24958775
复制相似问题