我正在使用Angular并尝试将请求(使用$resource
)发送到外部API,但我需要在2个不同的对象中发送数据,而我目前只发送1个。 API要求用户特定的操作在每个请求中包含auth_token
。
如果没有auth_token
,请求将如下所示:
APIShop.reg(Cart.data,
function(success) {},
function(failure) {}
);
APIShop
看起来像这样:
app.provider('APIShop', function(API_URL) {
this.$get = ['$resource', function($resource) {
var Campaign = $resource(API_URL.url + API_URL.loc + ':service/:action/', {service: '@service', action: '@action'}, {
'reg': {method:'POST', isArray: false, params: {service: 'account', action: 'order'}},
'update': {method:'PUT', isArray: false, params: {service: 'account', action: 'order'}}
});
return Campaign;
}];
});
Cart.data
是一个看似如下的对象:{country: 'US', city: 'Seattle, WA'}
但我还需要在同一请求中的{auth_token: '432078e36c7a42e3c6febdac95f38c1549de6218'}
对象中添加User
。直接的解决方案可能是将auth_token
字段添加到Cart
对象,但是我将这些数据存储在应用程序中的各种模型中User
,{{1}等等,我想在ShoppingCart
对象中保留auth_token。
我试过
User
没想到它会起作用,但它没有。 auth_token最终显示为APIShop.reg(Cart.data, User.auth_token
function(success) {},
function(failure) {}
);
,而不是Request Payload
。
我也不想直接发送Query String Parameters
之类的东西(而不是发送对象),因为这迟早会成为维护的噩梦。
如何在不将令牌添加到{country: Cart.data.country, city: Cart.data.city, auth_token: '432078e36c7a42e3c6febdac95f38c1549de6218'}
的情况下发送两条信息(因为它意味着我需要将其添加到每个对象中),或者列出所有字段对象
答案 0 :(得分:0)
重构APIShop以接收数组:
APIShop.reg([Cart.data, User.auth_token],
function(success) {},
function(failure) {}
);
或重构它以接收映射对象:
APIShop.reg({ data : Cart.data, auth : User.auth_token },
function(success) {},
function(failure) {}
);