[英]Sending 2 objects in 1 POST request
我正在使用Angular並嘗試向外部API發送請求(使用$resource
),但是我需要在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'}
但我還需要在同一請求中從User
對象添加{auth_token: '432078e36c7a42e3c6febdac95f38c1549de6218'}
。 立即的解決方案可能是將auth_token
字段添加到Cart
對象,但是當我將數據存儲在應用程序中的各種模型User
, ShoppingCart
等中時,我想將auth_token保留在User
對象中。
我試着做
APIShop.reg(Cart.data, User.auth_token
function(success) {},
function(failure) {}
);
沒想到它會工作,而且沒有。 auth_token最終顯示為Request Payload
而不是Query String Parameters
。
我也不想直接發送類似{country: Cart.data.country, city: Cart.data.city, auth_token: '432078e36c7a42e3c6febdac95f38c1549de6218'}
(而不是發送對象),因為那樣會更快地成為維護噩夢。或更高版本。
我如何發送這兩條信息而不將令牌添加到Cart
(因為這意味着我需要將其添加到以后的每個對象中)或列出對象的所有字段?
重構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) {}
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.