在 dstore/Rest 请求中添加查询参数
Add query parameters at dstore/Rest request
我有一个这样的 dstore/Rest 实例:
const entries = new Rest({ target: '/rest/entries' })
而且我需要为每个 PUT/POST 请求添加一个令牌作为查询参数,因此 url 对于我的 PUT/POST 请求应该如下所示:
'/rest/entries/100500?token=some_token'
dstore/Rest 有什么方便的方法吗?或者在每个请求之前设置 header 并将令牌放在那里。无论如何,我的问题是在调用
时构建正确的请求
entries.add({id: 100500, value: 'someValue'})
更新:
我发现,Rest.add 接受两个参数 - object 和选项,并设法在 headers 中添加令牌:
entries.add(entry, {
headers: {
Token: token
}
})
不过我还是对查询参数很好奇。
我认为继承 dstore/Rest ,通过创建自定义 MyRest.js
class 并在构造函数中添加 headers 将帮助您在 constrictor 中传递令牌,然后执行操作无需每次都使用 headers。
你的新 class 应该看起来像:
define([
'dojo/_base/declare',
'dstore/Rest',
'dojo/_base/lang',
], function (declare, Rest) {
return declare(Rest, {
// ^
// |
// inheritence -----
constructor: function(headers) { // headers object : {Token: token};
this.inherited(arguments); // like super() in poo
this.headers = this.headers || {};
lang.mixin(this.headers, headers || {});
}
});
});
我已经找到了以下解决方案:
lang.extend(Rest, {
setToken: function(token) {
this.token = token
aspect.after(this, '_getTarget', function(target) {
if (this.token) {
target += '?token=' + this.token
this.token = undefined
}
return target
})
aspect.before(this, 'add', function() {
if (this.token) {
this.target += '?token=' + this.token
this.token = undefined
}
})
return this
}
})
我是这样使用的:
entries.setToken(token).add(data)
但我不确定这是完成任务的好方法。
我有一个这样的 dstore/Rest 实例:
const entries = new Rest({ target: '/rest/entries' })
而且我需要为每个 PUT/POST 请求添加一个令牌作为查询参数,因此 url 对于我的 PUT/POST 请求应该如下所示:
'/rest/entries/100500?token=some_token'
dstore/Rest 有什么方便的方法吗?或者在每个请求之前设置 header 并将令牌放在那里。无论如何,我的问题是在调用
时构建正确的请求entries.add({id: 100500, value: 'someValue'})
更新:
我发现,Rest.add 接受两个参数 - object 和选项,并设法在 headers 中添加令牌:
entries.add(entry, {
headers: {
Token: token
}
})
不过我还是对查询参数很好奇。
我认为继承 dstore/Rest ,通过创建自定义 MyRest.js
class 并在构造函数中添加 headers 将帮助您在 constrictor 中传递令牌,然后执行操作无需每次都使用 headers。
你的新 class 应该看起来像:
define([
'dojo/_base/declare',
'dstore/Rest',
'dojo/_base/lang',
], function (declare, Rest) {
return declare(Rest, {
// ^
// |
// inheritence -----
constructor: function(headers) { // headers object : {Token: token};
this.inherited(arguments); // like super() in poo
this.headers = this.headers || {};
lang.mixin(this.headers, headers || {});
}
});
});
我已经找到了以下解决方案:
lang.extend(Rest, {
setToken: function(token) {
this.token = token
aspect.after(this, '_getTarget', function(target) {
if (this.token) {
target += '?token=' + this.token
this.token = undefined
}
return target
})
aspect.before(this, 'add', function() {
if (this.token) {
this.target += '?token=' + this.token
this.token = undefined
}
})
return this
}
})
我是这样使用的:
entries.setToken(token).add(data)
但我不确定这是完成任务的好方法。