【问题标题】:Implement multitenancy using generated endpoints and gae使用生成的端点和 gae 实现多租户
【发布时间】:2014-05-04 10:38:13
【问题描述】:

我正在尝试使用应用引擎开发带有后端的 android 应用。我已经生成了端点,现在我需要在我的应用中使用多租户。Here documentation about multitenancy

但是我已经生成了端点,而不是如上所示的 servlet。如何使用端点实现多租户?

【问题讨论】:

标签: java android google-app-engine google-cloud-datastore multi-tenant


【解决方案1】:

App Engine 支持多个启用命名空间的 API,即 Datastore、Memcache、Task Queue 和 Search。从您的问题中不清楚如何计划在您的应用程序中使用命名空间。

我假设您想要保存和/或检索特定命名空间中的数据,以便根据您的命名空间要求对数据进行很好的隔离。我认为您不一定需要遵循示例中给出的过滤器示例。

如果需要,您可以使用启动 servlet(在应用程序启动时加载)来设置特定的命名空间。随后,您需要确定命名空间值的限定条件。例如如果您的 Cloud Endpoints 通过 User 参数实现安全性,那么用户 ID 可能是命名空间 ID。或者,您可以从数据存储中检索其他相关/关联的数据,以确定适合命名空间 id 的其他值。

仅供参考——Cloud Endpoints 架构在幕后也是 Servlet。

【讨论】:

  • 我需要数据存储的命名空间,是的,我在可以使用的端点方法中使用用户参数。但是究竟如何?在哪里定位启动 servlet,或者我需要写他?谢谢
  • 查看以下内容:developers.google.com/appengine/docs/java/config/… 了解如何在加载时启动 servlet。你可以在那里进行初始化。
  • @Romin 你为什么不做一个教程呢?我按照你的 Quotes 教程创建端点,如果有办法做到这一点也很好。
【解决方案2】:

我有一个基于 GAE 和 jsp 的网络应用程序。我使用 Google 的 UserServiceFactory 为每个用户设置命名空间。

    import com.google.appengine.api.users.UserServiceFactory;
    import com.google.appengine.api.NamespaceManager;
...

        if (NamespaceManager.get() == null) {
              // Assuming there is a logged in user.
              String namespace UserServiceFactory.getUserService().getCurrentUser().getUserId();
              NamespaceManager.set(namespace);
            }
...

现在我尝试更改为 Google Cloud Endpoints,并使用 Endpoint API (Using Auth with Endpoints) 的用户。代码看起来像这样,可以在我的测试环境中运行。

    import com.google.appengine.api.users.User;
    import com.google.appengine.api.NamespaceManager;
...

    @ApiMethod(name = "scores.insert")
    public Score insert(Score score, User user) throws OAuthRequestException, IOException {
      ...

            if (NamespaceManager.get() == null) {
                  // Assuming there is a logged in user.
                  String namespace = user.getUserId();
                  NamespaceManager.set(namespace);
                }
...

    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多