如何让我的 Ember 应用程序支持多个 api 主机,基于用户?

How can I have my Ember app support multiple api hosts, based on the user?

在我的 Ember 应用程序中,我希望 url 到 api 基于登录的用户。例如,用户 1 可能需要使用 host1.example.com 而用户 2 可能需要使用 host2.example.com.

我可以根据功能在适配器上设置主机吗?例如这样的事情:

export default DS.JSONAPIAdapter.extend({
  host: () => {
    if (user1) { return 'host1.example.com'; }
    else { return 'host2.example.com'; }
  }
});

我建议使用计算 属性 和您的用户服务,而不是使用函数并尝试在您的适配器上手动(强制性地)设置一些东西,因为您随后声明事物应该如何作为属性改变。像这样的东西应该工作得很好:

export default DS.JSONAPIAdapter.extend({
  user: service(),
  host: computed(‘user.isWhitelabeled’, function() {
    if (this.get(‘user.isWhitelabeled’)) {
      return 'host1.example.com';
    } else {
      return 'host2.example.com';
    }
  })
});