Javascript API群集-使用默认端点的自定义组配置
我正在使用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.
端点组时
有时我可能只想使用默认的端点
模式,但配置选项可以不同
场景:若我在组中并没有提到“端点”,那个么值应该取自默认的“端点”模式
请查看此代码问题在第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();