API 集群 - 为默认端点使用自定义组配置

API Cluster - Using Custom Group Config for Default Endpoint

我正在使用 Api 集群库。当我有时尝试创建多个 endpoint group 时,我可能只想使用默认 endpoint 模式,但配置选项可能不同。

Scenario: if I don't mention 'endpoint' in group then value should be taken from default 'endpoint' pattern

请看一下这段代码click here

问题在第 164 行 (ApiCluster.js)

ApiCluster.generated = ApiCluster.data.apiUrls[groupName][name];

正在尝试从 v1 组获取 'empDetails'。

ApiCluster.generated = ApiCluster.data.apiUrls['v1']['empDetails']

修复方法是将行更改为,

ApiCluster.generated = ApiCluster.data.apiUrls[groupName] && ApiCluster.data.apiUrls[groupName][name] ? ApiCluster.data.apiUrls[groupName][name] : ApiCluster.data.apiUrls[ApiCluster.data.defaultGroupName][name];

因此,如果 属性 在请求的组中不可用,那么它将从默认值读取它。

这是 url 修复:
http://plnkr.co/edit/ys6btxjYH0xqh1kGuOVf?p=preview

这是 API Cluster 1.0.5 JS 库中的限制之一。

因为 API Cluster 1.0.5 期望 addAnother / defaults 方法参数需要以下三个选项,这是强制性的。

  1. 名字
  2. 配置
  3. 端点

Defaults / addAnother method creates the endpoint groups, each group is independent

按照下面的方法尝试解决您的问题。

ApiCluster
  .defaults({
    name: 'mydefault',

    config: {
      'employee': 'emp',
      'details': 'defaultDetails',
      'timesheet': 'timesheet'
    },

    endpoints: {
      "empDetails": "_employee_/_details_/:empId/profile"
    }
  })
  .addAnother({
    name: 'v1',
    config: {
      'employee': 'emp',
      'details': 'v1Details',
      'timesheet': 'timesheet'
    },

    endpoints: {
      "empDetails": "_employee_/_details_/:empId/profile"
    }
  });

var empDetailURL = ApiCluster
  .use('v1')
  .get('empDetails')
  .arg({
    'empId': 1000
  })
  .query({
    'confirm': 'yes',
    'testAccount': 'yes'
  })
  .url();