Api URI设计首选项

时间:2013-03-04 11:42:44

标签: api uri restful-url api-design

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

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

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

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

/widgets
/widgets:id

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

哪种方式更优选?为什么?欢呼声。

1 个答案:

答案 0 :(得分:1)

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

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

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