我有不同的用户,他们可能登录到用户界面并需要查看相同资源的不同 View 。例如,一个家庭共享一个购物应用程序。当 parent 登录时,他们可以看到购物车中的所有内容。当 child 登录时,他们看不到购物车中的某些产品,而对于他们可以看到的产品,他们看不到某些属性(例如价格)。
因此,从资源的角度来看,如果我们希望父级和子级有两种不同的购物车 View ,一种方法是:
/parent/shoppingcart
和/child/shoppingcart
另一种方法是:/parent.shoppingcart
和/child.shoppingcart
从 API/REST 的角度来看,最佳实践是什么?注意:我做不到,
/shoppingcartsummary
和/购物车
因为有比 parent 和 child 更多的观点。
最佳答案
最佳实践可能是/shoppingcart/parent 和/shoppingcart/child。很确定如果你可以做“/parent/shoppingcart”,你可以做“/shoppingcart/parent”。
Shoppingcart 将是 View 的公共(public)/通用部分(以及在 Controller 上的公共(public)功能,例如检索产品列表以准备以某种方式显示它们)。基于授权级别,“父”或“子” subview 扩展了购物车并阐明了确切的表示。
当然,只有父级才能访问/shoppingcart/parent。 parent 当然也会有一个链接“作为 child 查看”来查看/shoppingcart/child。
特别重要的是,不要依赖 Client/Browser 直接指定它是什么,例如发送 Content-Type 来指定父级或子级。
关于rest - 作用域 API 的机制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53830747/