范围API的机制

时间:2018-12-18 10:12:34

标签: rest api

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

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

/parent/shoppingcart

/child/shoppingcart

另一种方式是:

/parent.shoppingcart

/child.shoppingcart

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

注意:我做不到,

/shoppingcartsummary

和     / shoppingcart

因为观看次数比父母和孩子还要多。

谢谢

2 个答案:

答案 0 :(得分:3)

最佳做法可能是/ shoppingcart / parent和/ shoppingcart / child。可以肯定,如果您可以执行“ / parent / shoppingcart”,则可以执行“ / shoppingcart / parent”。

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

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

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

答案 1 :(得分:0)

您只有一种资源,> cat some.pdf name type encoding emb sub uni object ID ------------------------------------ ----------------- ---------------- --- --- --- --------- TimesNewRoman TrueType WinAnsi no no no 36 0 TimesNewRoman,Bold TrueType WinAnsi no no no 38 0 EDMFMD+Symbol CID TrueType Identity-H yes yes yes 41 0 Arial TrueType WinAnsi no no no 43 0 Arial,Bold TrueType WinAnsi no no no 16 0 > perl -lane ' $enc=@F==9? $F[3]:$F[2]; print "$enc\t\t$F[-3]" ' some.pdf encoding uni ---------------- --- WinAnsi no WinAnsi no Identity-H yes WinAnsi no WinAnsi no > 。您具有该资源的多个表示-一个用于父母,一个用于孩子,等等。您可以保留一个端点(用于资源),并使用带有自定义内容类型的/shopping-cart标头,例如Accept,以指定该资源的所需表示形式。