๋ง์คํฐ ํ ์ด๋ธ์์ A, B, C ๋ฐ์ดํฐ 3๊ฐ๋ฅผ ์ด์ฉํ์ฌ ๊ฒ์๊ธฐ๋ฅ์ ๊ตฌํํ๋ค.
์ฐ์ , ํ๋ก ํธ์ชฝ์์ ๋จ์ String ๊ฐ์ด ์๋, Bodyํํ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ณ ์ถ์ด์ ๋ฐฑ์๋์์ PostMapping์ ์ด์ฉํ์ฌ ์กฐํ API๋ฅผ ๊ตฌํํ๋ค.
(์ฐธ๊ณ ๋ก GetMapping์ผ๋ก ๊ตฌํํ๋ฉด Body๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ ํฌ์คํธ๋งจ์์๋ ์ค๋ฅ๊ฐ ๋์ง ์๋๋ค. ํ๋ก ํธ์ ๊ฐ๋ค ๋ถ์ด๋ฉด ๋น์ฐํ ์ค๋ฅ๊ฐ ๋จ
axios๊ฐ ์๋ ๋ค๋ฅธ ํต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์๋ GET & BODY ์กฐํฉ์ด ๊ฐ๋ฅํ ๊ฒ ์์ด์ ๊ทธ๋ ๋ค๊ณ ํ๋ค.)
์ฌํผ ์ผ๋ ๋ฒ๋ ๋ง๋ค์์
ํ๋ก ํธ์ ๋ถ์ผ ๋, ์ฃผ์ํด์ผํ ๊ฒ์ด ๋ฐ๋ก param
get / postํ์์ผ๋ก ๋ณด๋ผ ๋ ์ฝ๊ฐ์ ์ฐจ์ด๊ฐ ์๋ค.
< get >
const { data } = await axios.get(process.env.VUE_APP_URL + '/api/ea/TbDdsM01/search', {
params: {
filter1: filters.clientNm,
filter2: filters.cstNm,
filter3: filters.cstCd,
},
});
์์ฒญ URL
http://localhost:8170/api/ea/TbDdsM01/search?filter1=&filter2=&filter3=1
get์ params์ด๋ผ๋ ์ด๋ฆ์ ๊ฐ์ฒด ์์ ๋ฐ์ดํฐ๋ฅผ ๋ด์ ๋ณด๋ด์ผํ๋ค. ๋ฐ๋ก ๊ฐ์ฒด๋ฅผ ๋ณด๋ด๋ฉด request body๋ผ๊ณ ์ธ์์ ํ์ฌ ์๋ฌ๊ฐ ๋๋ค.
get์ด๋ฏ๋ก ์ฟผ๋ฆฌ๋ฌธ์์ด ํ์์ผ๋ก ์์ฒญ URL์ด ํ์ฑ๋๋ค.
์๋ฒ์์๋ ํด๋น ๋ฐ์ดํฐ๋ฅผ request query๋ก ๋ฐ๋๋ค.

< post >
const searchData = async () => {
const params = {
filter1: filters.clientNm,
filter2: filters.cstNm,
filter3: filters.cstCd,
};
const { data } = await axios.post(process.env.VUE_APP_URL + '/api/ea/TbDdsM01/search', params);
state.table.data = data;
};
์์ฒญ URL
http://localhost:8170/api/ea/TbDdsM01/search

๊ฐ์ ๋ฏ ๋ค๋ฅธ ๋ฏ .. get์ params์ผ๋ก ํ๋ฒ ๊ฐ์ธ์ ๋ณด๋ด๊ณ post๋ ๊ทธ๋ฅ ๋ณด๋ด๋ค .. ๊ทธ๋ ๋ค๊ณ ํฉ๋๋ค. (๋)
์ถ๊ฐ
get ํ์์์, ์ค์ฒฉ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ณ ์ถ์๋์ ์ด๋ป๊ฒ ํ ๊น
Axios์์๋ ์ด์ ๊ฐ์ ์ํฉ์ ์ํด paramsSerializer ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ค.
๋ฐ์ดํฐ๋ฅผ ์์๊ฒ ์ง๋ ฌํ์์ผ์ฃผ๋ ... ์ด์ฉ๊ณ (์ฌ์ฌ ์ฐ๊ธฐ ๊ท์ฐฎ์
์๋ฅผ ๋ค์ด ๋ฐฐ์ด์ param์ผ๋ก ๋ณด๋ด๊ณ ์ถ์๋์๋ ์๋์ ๊ฐ์ด ํ๋ฉด ๋๋ค.
const searchData = async (arr) => {
const { data } = await axios.post(process.env.VUE_APP_URL + '/api/ea/TbDdsM01/search', {
params : arr
},
paramsSerializer : params => {
return qs.stringify(params, {arrayFormat: 'brackets'});
}
state.table.data = data;
};
๊ทธ๋ผ ์ด๋ ๊ฒ ์์๊ฒ ์ ๋ฆฌ๋ ์ฟผ๋ฆฌ ์คํธ๋ง URL์ด ํ์ํ๋ค.
http://localhost:8170/api/ea/TbDdsM01/search?arr[0]=apple&arr[1]=banana
์๋ฒ์์ ๋ฐ์๋์๋ ๊ผญ @RequestParam์ ๋ฐฐ์ด๋ก ๋ฐ๋๋ก ์ฒ๋ฆฌํด์ฃผ์ด์ผํ๋ค.
@GetMapping("/search")
public ResponseEntity<List<Post>> selectSearchTbDdsM01(@RequestParam(value="arr[]") String[] arrList)
ํ์ง๋ง, ์ด๋ ๊ฒ ์์ฒญ ์ ๊ณ์ ์ต์ ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ๋ ๊ฒ์ ๊ท์ฐฎ๊ธฐ ๋๋ฌธ์
Axios ์ธ์คํด์ค๋ฅผ ์ ์ํ๋ ๊ณณ์์ ๋ํดํธ ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ๋ฉด ๋๋ค.
const instance = axios.create({
baseURL: process.env.VUE_IP,
headers: {
'Content-Type': 'application/json',
"Authorization": ''
},
paramSerializer : (params) => {
return qa.stringify(params, {arrayFormat : 'brackets'});
}
});
์ง์ง ๋!