ν΄λΌμ΄μΈνΈ λ¨μμ http λΉλκΈ° ν΅μ λΌμ΄λΈλ¬λ¦¬λ‘ axiosλ₯Ό μ¬μ©νλλ°, μλ²μ μμ²νλλ° μκΎΈ μλ²μμ μλ¬κ° λ¬λ€.
API μμ² νμμ μλμ κ°λ€.
- μμ² λ©μλλ POST
- μμ² λ°λλ μλ¬΄λ° λ°μ΄ν°λ λ£μ§ μμμΌν¨
- μμ² ν€λμ μμ² νλΌλ©ν° κ°μΌλ‘λ§ μλ²μ μμ²
λ€νΈμν¬ νμμ νμΈν΄λ³΄λ, ν€λμ νλΌλ―Έν°λ‘ μ μμ²μ΄κ°μ§ μκ³ , payload λ°λμ ν€λμ νλΌλ―Έν°λ‘ μ μ΄μ€ κ°μ²΄κ° μμ² λ°λλ‘ λ³΄λ΄μ Έμ μ€λ₯κ° λλ κ²μΌλ‘ νμΈμ΄ λμλ€.
κΈ°μ‘΄ μ½λ
axios.post(
'url',
{
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
params: {
transactionId,
email,
pageUri: 'http://192.168.1.10:5173/email-link-verification',
},
},
);
axios κΈ°λ³Έ λ¬Έλ²
axios(config)
μμ² config μ΅μ λ€
{
// `url`μ μμ²μ μ¬μ©λ μλ² URLμ
λλ€.
url: '/user',
// `method`λ μμ²μ μμ±ν λ μ¬μ©λλ λ©μλμ
λλ€.
method: 'get', // κΈ°λ³Έκ°
// `url`μ΄ μ λκ°μ΄ μλ κ²½μ° `baseURL`μ URL μμ λΆμ΅λλ€.
// μλμ μΈ URLμ μΈμ€ν΄μ€ λ©μλμ μ λ¬νλ €λ©΄ `baseURL`μ μ€μ νλ κ²μ νΈλ¦¬ν©λλ€.
baseURL: 'https://some-domain.com/api',
// `transformRequest`λ μμ² λ°μ΄ν°λ₯Ό μλ²λ‘ μ μ‘νκΈ° μ μ λ³κ²½ν μ μκ² ν΄μ€λλ€.
// μ΄κ²μ 'PUT', 'POST', 'PATCH', 'DELETE' λ©μλμμλ§ μ μ©λ©λλ€.
// λ§μ§λ§ ν¨μλ Buffer, ArrayBuffer, FormData λλ Streamμ μΈμ€ν΄μ€ λλ λ¬Έμμ΄μ λ°νν΄μΌ ν©λλ€.
// ν€λ κ°μ²΄λ₯Ό μμ ν μ μμ΅λλ€.
transformRequest: [function (data, headers) {
// λ°μ΄ν°λ₯Ό λ³ννλ €λ μμ
μν
return data;
}],
// `transformResponse`λ μλ΅ λ°μ΄ν°κ° then/catchλ‘ μ λ¬λκΈ° μ μ λ³κ²½ν μ μκ² ν΄μ€λλ€.
transformResponse: [function (data) {
// λ°μ΄ν°λ₯Ό λ³ννλ €λ μμ
μν
return data;
}],
// `headers`λ μ¬μ©μ μ§μ ν€λμ
λλ€.
headers: {'X-Requested-With': 'XMLHttpRequest'},
// `params`μ μμ²κ³Ό ν¨κ» μ μ‘λλ URL νλΌλ―Έν°μ
λλ€.
// λ°λμ μΌλ° κ°μ²΄λ URLSearchParams κ°μ²΄μ¬μΌ ν©λλ€.
// μ°Έκ³ : nullμ΄λ undefinedλ URLμ λ λλ§λμ§ μμ΅λλ€.
params: {
ID: 12345
},
// `paramsSerializer`λ `params`μ μ리μΌλΌμ΄μ¦λ₯Ό λ΄λΉνλ μ΅μ
ν¨μμ
λλ€.
// (μ: https://www.npmjs.com/package/qs, http://api.jquery.com/jquery.param/)
paramsSerializer: function (params) {
return Qs.stringify(params, {arrayFormat: 'brackets'})
},
// `data`λ μμ² λ°λλ‘ μ μ‘λ λ°μ΄ν°μ
λλ€.
// 'PUT', 'POST', 'PATCH', 'DELETE' λ©μλμμλ§ μ μ© κ°λ₯ν©λλ€.
// `transformRequest`κ° μ€μ λμ§ μμ κ²½μ° λ€μ νμ
μ€ νλμ¬μΌ ν©λλ€.
// - string, plain object, ArrayBuffer, ArrayBufferView, URLSearchParams
// - λΈλΌμ°μ μ μ©: FormData, File, Blob
// - Node μ μ©: Stream, Buffer
data: {
firstName: 'Fred'
},
// λ°λλ‘ μ μ‘νλ λ°μ΄ν°μ λμ λ¬Έλ²
// POST λ©μλ
// ν€κ° μλ κ°λ§ μ μ‘λ©λλ€.
data: 'Country=Brasil&City=Belo Horizonte',
...
}
axios κΈ°λ³Έ λ¬Έλ² μμ
axiosλ₯Ό μ μ΄μ£Όκ³ κ΄νΈ μ configμ μλμ κ°μ μ΅μ λ€μ μ μ΄μ€ μ μλ€.
axios({
url: 'url',
method: 'post',
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
...
})
νμ§λ§ λͺ λ Ήμ΄ λ©μλλ₯Ό μ¬μ©ν΄μ μ‘°κΈ λ κ°μν μν¬ μ μλ€.
axios λͺ λ Ήμ΄ λ©μλ λ¬Έλ² - POST μμ²μ
axios.post(url[, data[, config]])
axios λ€μμ http methodλ₯Ό λ°λ‘ λ©μλ νμμΌλ‘ μ μ΄μ£Όκ³ , κ΄νΈμ 첫 λ²μ§Έ μΈμλ₯Ό λ°λ‘ url λ‘ μ μ΄μ€λ€.
μ΄λ μ£Όμν μ μ url λ€μμ μ μ΄μ£Όλ λ λ²μ§Έ μΈμλ data μμ±μ΄ λλ€λ κ²μ΄λ€. headers λ params κ°μ config μ΅μ μμ±κ°μ μ μ΄μ£Όκ³ μΆμΌλ©΄, data μ μΈλ²μ§Έ μΈμμ μ μ΄μ£Όλ©΄ λλ€.
λ¬Έμ ν΄κ²°
axios.post(
'url',
{}, <--- data μ리μ λΉκ°μ²΄ μ μ΄μ€
{
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
params: {
transactionId,
email,
pageUri: 'http://192.168.1.10:5173/email-link-verification',
},
},
);
μ΄μ μ μ΄μ€ params μμ±λ€μ΄ 쿼리μ€νΈλ§ νλΌλ―Έν°λ‘ μμ²μ΄ μ λλ κ²μ νμΈν μ μλ€.
- https://axios-http.com/kr/docs/api_intro
- https://axios-http.com/kr/docs/req_config
- https://velog.io/@hyes-y-tag/node.js-axios.post-%EC%9A%94%EC%B2%AD%EC%8B%9C-headers-params%EA%B0%80-%EC%95%88%EB%B3%B4%EB%82%B4%EC%A7%84%EB%8B%A4%EB%A9%B4