API傳遞陣列的方法分享,搭配Axios與qs,讓專案更好維護!

更新 發佈閱讀 4 分鐘


若你的專案是使用 Axios 作為管理API的工具,那麼未來有天你可能會遇到「想要傳陣列資料給後端」或是「後端要求傳遞數組資料」的狀況,以下提供你幾種解決方式,選擇適合你的吧!

前提

一般來說,呼叫API傳遞參數,通常是一個Key一個Value,像是StringBooleanNumber這類的,但是當你想要傳遞Array這個型態的資料時就會遇到這個問題。

// 先不管其他的,讓我們呼叫API看看結果​
axios({
method: 'get',
url: 'api',
params: {
currency:['c1','c2']
}
});

// 傳出去的結果
api?currency[]=c1&currency[]=c2

後端收到 currency[]=c1&currency[]=c2,可能會跟你說他不能用或者是說他還要再處理資料等等的狀況,這時候可能會要求你重新處理。那麼就需要溝通,後端想要收到什麼樣子的資料,這邊列出兩種給前端夥伴參考:
(又或者你的後端夥伴覺得他處理就好可能今天你就不會看到這篇文章了XD)

(1) currency=c1&currency=c2

(2)"['c1','c2']"

這兩種解決方式都可以,你們講好就行囉!

解決方法➊:使用qs套件

蠻完善的處理方式,因為套件提供Array格式非常多,你可以選擇你需要的。

第一步:下載 npm qs

npm i qs
import qs from 'qs'

第二步:在 Axios 使用

// 使用 paramsSerializer + qs轉換格式
axios({
method: 'get',
url: 'api',
params: {
currency:['c1','c2']
}
paramsSerializer: params => {
return qs.stringify(params, { arrayFormat: 'repeat' })
}})
});

// 最後傳出去的結果
// 後端會收到 currency = 'c1' 和 currency = 'c2'
api?currency=c1&currency=c2
  • qs 提供 Array 傳遞的格式
qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' })
// 'a[0]=b&a[1]=c'

qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' })
// 'a[]=b&a[]=c'

qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' })
// 'a=b&a=c'

qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'comma' })
// 'a=b,c'

解決方法➋:將陣列轉成字串

簡單暴力的方法,但是後端需要自己再將資料拆解出來。

axios({
method: 'get',
url: 'api',
params: {
currency: JSON.stringify(['c1','c2'])
}
});

// 最後傳出去的結果
// 後端會收到 currency="['c1','c2']"
api?currency=['c1','c2']

結語

今天提供了兩種處理方式給各位工程師參考,方法有很多種只要可以解決問題,雙方也都好處理那就好囉!如果你遇到任何問題也可以在下方留言,若我有空會回覆的:D

留言
avatar-img
卡比的工程師之旅的沙龍
8會員
15內容數
開發之路有你有我有卡比,收錄各種開發的技術分享與疑難雜症解★☆
2024/08/07
首先確定VS Code的版本,如果你的版本跟我一樣是1.92.0那麼你可以參考我的作法...
Thumbnail
2024/08/07
首先確定VS Code的版本,如果你的版本跟我一樣是1.92.0那麼你可以參考我的作法...
Thumbnail
2024/01/04
問ChatGPT前端專案架構建議
Thumbnail
2024/01/04
問ChatGPT前端專案架構建議
Thumbnail
2024/01/03
JavaScript重組資料:flatMap與map的差異
Thumbnail
2024/01/03
JavaScript重組資料:flatMap與map的差異
Thumbnail
看更多
你可能也想看
Thumbnail
債券投資,不只是高資產族群的遊戲 在傳統的投資觀念中,海外債券(Overseas Bonds)常被貼上「高資產族群專屬」的標籤。過去動輒 1 萬甚至 10 萬美元的最低申購門檻,讓許多想尋求穩定配息的小資族望而卻步。 然而,在股市波動劇烈的環境下,尋求穩定的美元現金流與被動收入成為許多投資人
Thumbnail
債券投資,不只是高資產族群的遊戲 在傳統的投資觀念中,海外債券(Overseas Bonds)常被貼上「高資產族群專屬」的標籤。過去動輒 1 萬甚至 10 萬美元的最低申購門檻,讓許多想尋求穩定配息的小資族望而卻步。 然而,在股市波動劇烈的環境下,尋求穩定的美元現金流與被動收入成為許多投資人
Thumbnail
透過川普的近期債券交易揭露,探討債券作為資產配置中「穩定磐石」的重要性。文章分析降息對債券的潛在影響,以及股神巴菲特的操作策略。並介紹玉山證券「小額債」平臺,如何讓小資族也能低門檻參與海外債券市場,實現「低門檻、低波動、固定收益」的務實投資方式。
Thumbnail
透過川普的近期債券交易揭露,探討債券作為資產配置中「穩定磐石」的重要性。文章分析降息對債券的潛在影響,以及股神巴菲特的操作策略。並介紹玉山證券「小額債」平臺,如何讓小資族也能低門檻參與海外債券市場,實現「低門檻、低波動、固定收益」的務實投資方式。
Thumbnail
解析「債券」如何成為資產配置中的穩定錨,提供低風險高回報的投資選項。 藉由玉山證券的低門檻債券服務,投資者可輕鬆入手,平衡風險並穩定財務。
Thumbnail
解析「債券」如何成為資產配置中的穩定錨,提供低風險高回報的投資選項。 藉由玉山證券的低門檻債券服務,投資者可輕鬆入手,平衡風險並穩定財務。
Thumbnail
相較於波動較大的股票,債券能提供固定現金流,而玉山證券推出的小額債,更以1000 美元的低門檻,讓學生與新手也能參與全球優質企業債投資。玉山E-Trader平台即時報價、條件式篩選與清楚的交易流程等特色,大幅降低投資難度,對於希望分散風險、建立穩定現金流的人來說,玉山小額債是一個值得嘗試的理財起點。
Thumbnail
相較於波動較大的股票,債券能提供固定現金流,而玉山證券推出的小額債,更以1000 美元的低門檻,讓學生與新手也能參與全球優質企業債投資。玉山E-Trader平台即時報價、條件式篩選與清楚的交易流程等特色,大幅降低投資難度,對於希望分散風險、建立穩定現金流的人來說,玉山小額債是一個值得嘗試的理財起點。
Thumbnail
在API介接中使用x-www-form-urlencoded格式時,可能會遇到一些踩坑的情況,本文分享了作者在這方面遇到的問題和解決方法。
Thumbnail
在API介接中使用x-www-form-urlencoded格式時,可能會遇到一些踩坑的情況,本文分享了作者在這方面遇到的問題和解決方法。
Thumbnail
JavaScript 套件,頁碼 Pagination.js 搭配 axios API 請求範例
Thumbnail
JavaScript 套件,頁碼 Pagination.js 搭配 axios API 請求範例
Thumbnail
先前幾篇筆記介紹了網路請求,瀏覽器儲存資料的方式,那麼實務上,前端最常需要發送網路請求的時候,就是透過呼叫 API,去向後端工程師發送/請求資料,所以今天來記錄什麼是 API吧!
Thumbnail
先前幾篇筆記介紹了網路請求,瀏覽器儲存資料的方式,那麼實務上,前端最常需要發送網路請求的時候,就是透過呼叫 API,去向後端工程師發送/請求資料,所以今天來記錄什麼是 API吧!
Thumbnail
JSON(JavaScript Object Notation)是AJAX(參考:[PHP][AJAX]介紹)常用的資料交換格式。在PHP有提供函數,可以將資料轉換成JSON。除外JSON比XML快速且簡單。 語法 資料是由鍵和值(Key-value)組成。 鍵和值之間用「:」區隔。 資料之
Thumbnail
JSON(JavaScript Object Notation)是AJAX(參考:[PHP][AJAX]介紹)常用的資料交換格式。在PHP有提供函數,可以將資料轉換成JSON。除外JSON比XML快速且簡單。 語法 資料是由鍵和值(Key-value)組成。 鍵和值之間用「:」區隔。 資料之
Thumbnail
Axios 如何處理陣列數組資料的傳遞,使用qs套件快速完成吧!
Thumbnail
Axios 如何處理陣列數組資料的傳遞,使用qs套件快速完成吧!
Thumbnail
您是否苦於網路資訊爆炸嗎? 教學何其多,但卻無法好好選擇的困境呢? 歡迎加入「🔒 阿Han的軟體心法實戰營」, 這裡不給您冗餘的雜訊, 單刀直入直接送您重點, 避開選擇障礙的困境, 讓您獲得業界標準的開發起手式, 成為Top 1的頂尖人才。 身為專業的軟體開發者的我們, 除了讓程式會動之外, 也
Thumbnail
您是否苦於網路資訊爆炸嗎? 教學何其多,但卻無法好好選擇的困境呢? 歡迎加入「🔒 阿Han的軟體心法實戰營」, 這裡不給您冗餘的雜訊, 單刀直入直接送您重點, 避開選擇障礙的困境, 讓您獲得業界標準的開發起手式, 成為Top 1的頂尖人才。 身為專業的軟體開發者的我們, 除了讓程式會動之外, 也
Thumbnail
呼叫API,並透過API響應的內容取到需要的值
Thumbnail
呼叫API,並透過API響應的內容取到需要的值
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News