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

Javascript API群集-使用默认端点的自定义组配置,javascript,api,endpoint,apicluster,Javascript,Api,Endpoint,Apicluster,我正在使用Api集群库。当我尝试创建多个端点组时有时我可能只想使用默认的端点模式,但配置选项可以不同 场景:若我在组中并没有提到“端点”,那个么值应该取自默认的“端点”模式 请查看此代码问题在第164行(ApiCluster.js) 它正在尝试从v1组获取“EMPDealts” ApiCluster.generated=ApiCluster.data.apirls['v1']['empDetails'] 解决方法是将线路更改为 ApiCluster.generated = ApiCluster.

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

场景:若我在组中并没有提到“端点”,那个么值应该取自默认的“端点”模式

请查看此代码

问题在第164行(ApiCluster.js)

它正在尝试从
v1
组获取“EMPDealts”

ApiCluster.generated=ApiCluster.data.apirls['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:

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

因为
API Cluster 1.0.5
除了
AddOther
/
默认值
方法参数需要以下三个选项,这是必需的

  • 名字
  • 配置
  • 端点
  • 默认值/添加另一个方法创建端点组,每个组都是独立的

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

    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();
    

    它只显示“你好,普朗克!”我什么也没看到。。在控制台中,它正在抛出错误Uncaught TypeError:无法读取未定义的属性“empDetails”。此问题来自库本身,并在Github问题本身中跟踪。不错。这将是一种解决方法,而不是修复方法。看看这个,这是对报告问题的修复,对于您的新问题。。替换为此ApiCluster.generated=ApiCluster.data.apirls[groupName]&&ApiCluster.data.apirls[groupName][name]?ApiCluster.data.apirls[groupName][name]:ApiCluster.data.apirls[ApiCluster.data.defaultGroupName][name];顺便说一句,这个问题还没有解决。返回“emp/details/1000/profile?confirm=yes&testAccount=yes”,但预期的是“emp/details\u emp/1000/profile?confirm=yes&testAccount=yes”,问题需要在ApiCluster库中解决,需要清理。不确定放在这里的原因:)
    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();