【发布时间】:2015-03-02 09:19:58
【问题描述】:
我正在尝试为具有多租户支持和共享资源的应用程序找出“正确”的 url 结构实现。
资源:用户、项目
网址架构是
host/api/tenant_id/resource[/id][/subresource][/id]
用户 A (width id = 1) 获得了他的项目集合
GET http://example.com/api/1/projects/
用户 A 创建一个新项目,可供用户阅读
GET http://example.com/api/1/projects/2
现在用户 A 向另一个用户 B (id = 2) 授予对项目 2 的访问权限。 用户 B 希望通过以下方式查看与其帐户相关的所有项目的集合:
GET http://example.com/api/2/projects/
共享项目(id = 2)是否应该在这个集合中,除了那些,用户B自己创建的?还是有更好的共享资源命名结构?
【问题讨论】:
-
为什么要一个租户 ID 来标识在不同租户下创建的项目?
-
应用程序中的资源不仅仅是项目。我打算将租户作为 API 的入口点。因此 id = 1 的用户 A 可以通过 GET example.com/api/1 访问他的所有资源
-
更准确地说,资源项目 2 现在可供用户 A 和用户 B 访问。在用户 A 和用户 B 的两个项目集合中显示项目 2 是否正确?
标签: api rest url restful-url restful-architecture