【问题标题】:How to model diffrent views (roles) on a resource?如何对资源建模不同的视图(角色)?
【发布时间】:2010-10-18 21:38:18
【问题描述】:

如何轻松地为角色视图建模?

假设我有一个可供买家或卖家查看的资源(有些内容在资源上由他们共享,有些内容对每个人都是独一无二的)

我是否应该将它们设为单独的资源: /resource/1/buyer, /resource/1/seller

或者我应该传递一个格式: /resource/1?viewer=seller

【问题讨论】:

    标签: rest roles


    【解决方案1】:

    我不会把它放在任何地方。相反,我会让相同的 URL 根据经过身份验证的用户显示资源的适用部分。

    用户的角色在身份验证时已经确定,要求在查询中复制数据是没有意义的。想象一下,您有一个复杂的用户权限系统。然后你会让用户在 URL 中复制他们的整个 ACL 吗? :/ 这样用户甚至不必知道它的角色。

    如果视图根本不同(例如,根本不共享任何字段或字段具有不同的语义),那么我将创建两个资源(/auction/1/buyer-info、/auction/1/seller-信息)。但这可能不是这里的情况。

    如果用户可以选择同一资源的多个视图,那么我会将视图放在查询参数 (?view=simple) 中,因为它没有与资源本身有关,但实际上是“查询的参数”。但请记住,这里的查询参数是“view”,而不是“viewer”(就像在您的示例中一样),IMO 是一个重要的区别。

    通过这三种方法,您可以缓存资源,然后根据a)当前用户和b)视图查询参数从中剥离相关数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-09
      • 2020-08-23
      • 1970-01-01
      • 2019-08-16
      • 1970-01-01
      • 2011-03-10
      • 2021-10-02
      • 2015-04-02
      相关资源
      最近更新 更多