首页 > 解决方案 > 范围 API 的机制

问题描述

我有不同的用户,他们可能登录到用户界面并需要查看相同资源的不同视图。例如,一个家庭共享一个购物应用程序。当父母登录时,他们可以看到购物车中的所有内容。当孩子登录时,他们看不到购物车中的某些产品,而对于他们可以看到的产品,他们看不到某些属性(例如价格)。

因此,从资源的角度来看,如果我们希望父母和孩子有两种不同的购物车视图,一种方法是:

/parent/shoppingcart

/child/shoppingcart

另一种方法是:

/parent.shoppingcart

/child.shoppingcart

从 API / REST 角度来看,最佳实践是什么?

注意:我做不到,

/shoppingcartsummary

和 /shoppingcart

因为比父母和孩子的意见还要多。

标签: rest

解决方案


最佳实践可能是 /shoppingcart/parent 和 /shoppingcart/child。很确定如果你可以做“/parent/shoppingcart”,你可以做“/shoppingcart/parent”。

Shoppingcart 将是视图的通用/通用部分(以及控制器上的通用功能,例如检索产品列表以准备以某种方式显示它们或不显示它们)。基于授权级别,“父”或“子”子视图扩展了购物车并阐明了确切的表示。

当然只有父母可以访问/shoppingcart/parent。当然,父母也会有一个链接“以孩子的身份查看”来查看/shoppingcart/child。

特别重要的是,不要依赖客户端/浏览器直接指定它是什么,例如发送 Content-Type 来指定父级或子级。


推荐阅读