有一个服务器和客户机。客户端需要从服务器获取这些商店的商店列表和折扣。
我有两种方法:
GET http://myservice.com/shops
那我就能在那些商店里得到折扣
e.q.GET http://myservice.com/shops/discounts
(两项请求)GET http://myservice.com/shops_and_discounts
(一项请求)第二个决定是否与RESTful服务的原则相矛盾?
还是使用第一种方式更好?
谢谢。
发布于 2015-04-11 05:52:20
REST强调组件之间的统一接口,当它驱动您实现更通用的问题解决方案时,它是它的优势之一。这两种方法都没有本质上的问题,但您正在创建一种特殊情况,这种特殊情况乍一看不明显,需要明确的文档。
我所使用的解决这个问题的方法是我所说的缩放协议。理想情况下,选项1应该足够了,如果客户端必须发出两个请求,也可以这样做。但是,您可能会有更深层次的其他资源嵌套,并且任何一个解决方案--多个请求或聚合资源说明--都不能很好地扩展。
其想法是有一个zoom数值参数,该参数在父表示中包含相关的子资源,用于所需的多个级别。例如,/shops返回所有商店。/shops?zoom=1返回所有商店,所有折扣和任何其他直接的孩子资源嵌入。/shops?zoom=2也会这样做,并将zoom=1应用于子资源本身,嵌入折扣的直接子级,等等。
这种方法的优点是您可以使其标准化,并且客户端可以在您需要的API中使用它。
https://stackoverflow.com/questions/29540981
复制相似问题