multi-tenant-schemas:使用django rest框架的动态api路由

问题描述 投票:3回答:1

我是Multi-Tenant架构的新手,使用django-tenant-schema开发SaaS产品

我的要求就像客户注册产品一样。对于每个注册的客户端,我都是通过遵循单个数据库和隔离模式方法来创建新模式。每当客户端从浏览器请求时,我都能够通过使用子域并授予访问其特定模式的权限来识别它们。当我开始编码时,很多问题都出现在我脑海中。我真的很抱歉在这里问,但stackoverflow只是我最后的希望。数据库如下所示

数据库

  • Public_Schema AUTH_USER Clients_List_Table
  • ClientA_Schema AUTH_USER ClientA_User_List
  • ClientB_Schema AUTH_USER ClientB_User_List

Q1。我们可以在每个客户端执行哪些管理操作?

我有休息api例如qazxsw poi这里的客户端可能是ClientS或ClientS

Q2。我们如何实现api路由,当用户在浏览器上请求时动态获取客户端名称,让我们使用相应的模式来显示当前客户端的user_list。

任何回复都可能有所帮助。提前致谢。

django django-rest-framework multi-tenant
1个回答
3
投票

我跟着http://client.example.com/api/user_list/,他们的团队实现了django多租户SassS应用程序所需的几乎所有内容。所以除了理解架构之外,我还没有做太多工作;我只是想回答这个问题。

首先从管理员和他们的特权开始;对于上述要求,我有两个管理员角色:tenants_admin,tenant_admin。

在这里,tenants_admin(为产品提供服务)能够管理租户(购买产品的个别公司); tenants_admin可以操纵租户的数据,它们位于公共模式中的表中。

现在来到tenant_admin,他对租户用户的数据有特权(让我们说单一公司的员工)。

现在从django-tenants克隆项目,特别为租户创建应用程序。这些租户模式彼此强烈隔离,包括应用程序名称和django-tenants到租户应用程序。然后像往常一样实现REST API;这些API将使用我们为项目创建的中间件自动导航。

© www.soinside.com 2019 - 2024. All rights reserved.