我试图点击一个看起来像/shop/<item_id>
但是,因为它还需要一个身份验证令牌,所以我将一个数组与令牌一起发送到$resource
。
APIshop.create([CreateCampaignService, {auth_token: User.token}]
我怎样才能这样做APIshop
能够采取这样的方式:
APIshop.create([CreateCampaignService, {auth_token: User.token}, {item_id: Cart.item_id}])
并点击/shop/<item_id>
?
这是APIshop:
app.provider('APIshop', function(API_URL) {
this.$get = ['$resource', function($resource) {
var shop = $resource(API_URL.url + API_URL.loc + ':service/', {service: '@service'}, {
'create': {method:'POST', isArray: false, params: {service: 'shop'}},
'update': {method:'PUT', isArray: false, params: {service: 'shop'}}
});
return shop;
}];
});
答案 0 :(得分:0)
您不能在数组中发送它,因为除非您连接令牌和项ID,否则它只接受一个参数。这是不好的做法。您应该在请求的标头中包含令牌。
在这里查看更多信息
Basic Authentication with a Guid token for REST api instead of username/password
答案 1 :(得分:0)
paramDefaults
url参数的默认值。这些可以在动作中被覆盖 方法。如果任何参数值是一个函数,它将是 每次需要获取a的参数值时执行 请求(除非该参数被覆盖)。
参数对象中的每个键值首先绑定到url模板 如果存在,则将任何多余的键附加到URL搜索 查询之后?。
给定模板/路径/:动词和参数{动词:'问候', 称呼:'Hello'}导致URL / path / greet?salutation = Hello。
如果参数值以@为前缀,那么该值的值 参数将取自数据对象上的相应键 (对非GET操作很有用)。
所以这应该适用于存储在某处的TOKEN(可能是$ rootScope):
app.provider('APIshop', function(API_URL) {
this.$get = ['$resource', function($resource) {
var shop = $resource(API_URL.url + API_URL.loc + ':service/:id', {service: '@service', id:'@id'}, {
'create': {method:'POST', isArray: false, params: {service: 'shop', access_token: TOKEN}},
'update': {method:'PUT', isArray: false, params: {service: 'shop', access_token: TOKEN}}
});
return shop;
}];
});