0

一个快速的 api uri 设计问题。我们拥有属于我们客户的资源。将这些资源输入我们系统的客户可以编辑/查看/删除这些资源。所有客户端都可以搜索资源,但只有在满足某些条件时才授予访问权限(客户端具有 3 级访问权限等)。

选择 1:在 uri 中包含拥有资源的客户端。

client/:clientname/widgets 
client/:clientname/widgets/:id

选择 2:放弃整个“client/:clientname”,因为这部分 uri 必须根据访问信息的用户的凭据进行验证和检查。

/widgets
/widgets:id

除了小部件之外,我们还有其他资源也属于客户。

哪种方式更受欢迎,为什么?干杯。

4

1 回答 1

1

选择 1 的唯一优势是它允许您有效地命名小部件/上传它们的用户。与 Github 类似,不同用户如何拥有同名项目。如果 Github 排除用户名,则没有两个用户可以拥有同名的项目。如果小部件都是唯一的,我会选择选项二,您将获得从小部件到创建它的用户的 1:1 映射,因此提供它对于调用它的人来说只是额外的工作。

如果您可以为不同的用户使用相同的小部件名称,请使用包含用户名的方法。不过,您可能不需要在您的网址中实际使用“客户”一词;使用类似 '/:clientname/widget/:widgetid' 的路径。

请注意,这是一个基于意见的问题,因此您可能会得到不同的答案。您必须权衡所提供的信息并最终做出自己的决定。

于 2013-03-04T21:39:36.350 回答