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

開發之路有你有我有卡比,收錄各種開發的技術分享與疑難雜症解★☆
留言0
查看全部
發表第一個留言支持創作者!
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
目前在新公司有半年,其中之一的任務是將EC檔中的程式碼改寫成Web API,而在完成後,會透過POSTMAN去測試API是否正常,也因此會經常查看狀態碼。藉由這次的記錄,將狀態碼的意思記下來,避免每次都要再去Google。 1xx:資訊 2xx:成功 3xx:重新導向 4xx:前端請求有
Thumbnail
狗狗們的介紹 老大貴賓犬(10歲5個月):家裡最大的狗姊姊,英文名叫「Adelin」,中文名叫「愛德霖」。牠性格溫和黏人。雖然年紀大了,但牠依然活潑,偶爾會展現出年輕時的活力。雖然只有4公斤重,但是我家另外3 隻狗狗都很尊重牠和怕牠。 老二高山犬(9歲4個月)
xhr 在下面的例子裡,我們首先建立了一個 XMLHttpRequest 物件,並使用 .open() 開啟一個 URL,最後使用 .send() 發出 request。 具體來說步驟有四個: 建立XMLHttpReque 開啟一個請求。 送出請求。 拿到回應後去處理畫面要如何呈現。
Thumbnail
金融業需遵守金檢規則,建立API分級協助和管理程序確保API合規,使用OAuth 2.0和API KEY授權功能降低風險,實行API認證和金鑰機制保障資料安全。監控API使用,建立控制機制,選擇優良的APIM,提供全面的API管理和安全。
Thumbnail
API在網路時代扮演關鍵角色,連結服務與產品,提供便利。了解API的本質,如何連結、提升用戶體驗。企業開放自家API,吸引新客群,提升黏著度。API經濟帶來創新應用,強化競爭力。什麼是API?它是應用程式介面,串接不同應用。發展API經濟的關鍵是什麼?開放!透過開放API整合資源,擴展業務。API經
Thumbnail
首先感謝大家願意在我雙十二時為我慶生,我真的好高興喔!自從像聖靈禱告後,我看完聖女貞德的漫畫傳記,心中靈感驟增,真的已經達到舉重若輕的境界而層層提升! 最近在從事百書計畫,有點懷念小時候玩電動的時光,除了玩恐怖的鬼屋以外,我也會玩PAC-MAN,就是大家常聽到的小精靈!!(📷)黃色的小精靈不是玩吃
Thumbnail
在人來人往、叫賣聲不斷的場外市場隨意繞了繞、走到靠近日比谷線築地站不遠的人行道上,米本珈琲本店的門面吸引了我的注目--一切都是小小的,小小的門口、桌椅、幾個盛滿咖啡豆的木桶過分親暱地擠在一塊兒,還有往門內探看、還沒踏進去就覺得好窄的店內空間...
Thumbnail
「我曾經以為身體與愛無關,現在我難以置信我當時那麼傻,身體與靈魂,都是愛自己與愛別人的必要條件,所以我才寫那本書。」相較於好萊塢女星鍛鍊得一身的美好線條與結實肌肉,Micha 那有點厚度的身體,才是正常的女體。好萊塢無痕的臉蛋與過瘦的女體,都是過分修飾的迷思,不是正常的女性與女體。
Thumbnail
因為風遲一首名為《故事》的詩,使得林海音請辭了聯合報的副刊主編,但她的貢獻卻從未停止…我很喜歡這部影片的名字《兩地》,它意味著北京與台灣的顛沛流亡;童年的英子與長大後千變莫化的世界;林海音先生的「雙鄉」身分還有生與死之間的距離。
Thumbnail
中國兩會強烈的言論管制中,臉孔已經作為唯一能夠表達「意圖」的符號了。那麼這個表情能代表什麼呢?在表情的直覺隨後的「脈絡化」,又表達了什麼呢?
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
目前在新公司有半年,其中之一的任務是將EC檔中的程式碼改寫成Web API,而在完成後,會透過POSTMAN去測試API是否正常,也因此會經常查看狀態碼。藉由這次的記錄,將狀態碼的意思記下來,避免每次都要再去Google。 1xx:資訊 2xx:成功 3xx:重新導向 4xx:前端請求有
Thumbnail
狗狗們的介紹 老大貴賓犬(10歲5個月):家裡最大的狗姊姊,英文名叫「Adelin」,中文名叫「愛德霖」。牠性格溫和黏人。雖然年紀大了,但牠依然活潑,偶爾會展現出年輕時的活力。雖然只有4公斤重,但是我家另外3 隻狗狗都很尊重牠和怕牠。 老二高山犬(9歲4個月)
xhr 在下面的例子裡,我們首先建立了一個 XMLHttpRequest 物件,並使用 .open() 開啟一個 URL,最後使用 .send() 發出 request。 具體來說步驟有四個: 建立XMLHttpReque 開啟一個請求。 送出請求。 拿到回應後去處理畫面要如何呈現。
Thumbnail
金融業需遵守金檢規則,建立API分級協助和管理程序確保API合規,使用OAuth 2.0和API KEY授權功能降低風險,實行API認證和金鑰機制保障資料安全。監控API使用,建立控制機制,選擇優良的APIM,提供全面的API管理和安全。
Thumbnail
API在網路時代扮演關鍵角色,連結服務與產品,提供便利。了解API的本質,如何連結、提升用戶體驗。企業開放自家API,吸引新客群,提升黏著度。API經濟帶來創新應用,強化競爭力。什麼是API?它是應用程式介面,串接不同應用。發展API經濟的關鍵是什麼?開放!透過開放API整合資源,擴展業務。API經
Thumbnail
首先感謝大家願意在我雙十二時為我慶生,我真的好高興喔!自從像聖靈禱告後,我看完聖女貞德的漫畫傳記,心中靈感驟增,真的已經達到舉重若輕的境界而層層提升! 最近在從事百書計畫,有點懷念小時候玩電動的時光,除了玩恐怖的鬼屋以外,我也會玩PAC-MAN,就是大家常聽到的小精靈!!(📷)黃色的小精靈不是玩吃
Thumbnail
在人來人往、叫賣聲不斷的場外市場隨意繞了繞、走到靠近日比谷線築地站不遠的人行道上,米本珈琲本店的門面吸引了我的注目--一切都是小小的,小小的門口、桌椅、幾個盛滿咖啡豆的木桶過分親暱地擠在一塊兒,還有往門內探看、還沒踏進去就覺得好窄的店內空間...
Thumbnail
「我曾經以為身體與愛無關,現在我難以置信我當時那麼傻,身體與靈魂,都是愛自己與愛別人的必要條件,所以我才寫那本書。」相較於好萊塢女星鍛鍊得一身的美好線條與結實肌肉,Micha 那有點厚度的身體,才是正常的女體。好萊塢無痕的臉蛋與過瘦的女體,都是過分修飾的迷思,不是正常的女性與女體。
Thumbnail
因為風遲一首名為《故事》的詩,使得林海音請辭了聯合報的副刊主編,但她的貢獻卻從未停止…我很喜歡這部影片的名字《兩地》,它意味著北京與台灣的顛沛流亡;童年的英子與長大後千變莫化的世界;林海音先生的「雙鄉」身分還有生與死之間的距離。
Thumbnail
中國兩會強烈的言論管制中,臉孔已經作為唯一能夠表達「意圖」的符號了。那麼這個表情能代表什麼呢?在表情的直覺隨後的「脈絡化」,又表達了什麼呢?