axios는 브라우저와 Node.js 환경에서 모두 사용할 수 있는 자바스크립트 HTTP 클라이언트 라이브러리입니다. 주로 API 요청을 보내고, 서버와 클라이언트 간의 비동기 HTTP 요청을 처리하는 데 사용됩니다.
npm을 사용하는 경우
npm install axios
yarn을 사용하는 경우
yarn add axios
GET 요청은 서버로부터 데이터를 받아올 때 사용된다
import axios from 'axios';
axios.get('https://api.example.com/data')
.then(response => {
console.log(response.data); // 응답 데이터를 출력합니다.
})
.catch(error => {
console.error("Error fetching data", error);
});
POST 요청은 서버에 데이터를 보낼 때 주로 사용됩니다. 예를 들어, 사용자 로그인이나 데이터 등록 등을 할 때 유용합니다.
import axios from 'axios';
const data = {
username: 'testuser',
password: 'password123'
};
axios.post('https://api.example.com/login', data)
.then(response => {
console.log(response.data); // 응답 데이터를 출력합니다.
})
.catch(error => {
console.error("Error posting data", error);
});
async/await를 통해 비동기 호출을 더 간단하게 관리할 수 있습니다.
import axios from 'axios';
async function fetchData() {
try {
const response = await axios.get('https://api.example.com/data');
console.log(response.data); // 응답 데이터를 출력합니다.
} catch (error) {
console.error("Error fetching data", error);
}
}
fetchData();
모든 요청에 공통적으로 헤더를 추가하거나 로깅하는 등의 작업을 할 수 있습니다.
axios.interceptors.request.use(
config => {
config.headers.Authorization = 'Bearer your_token';
console.log('Request sent at: ', new Date());
return config;
},
error => {
return Promise.reject(error);
}
);
응답 데이터를 전처리하거나 에러를 로깅할 수 있습니다.
axios.interceptors.response.use(
response => {
// 응답 데이터 전처리
return response;
},
error => {
console.error('Error occurred:', error);
return Promise.reject(error);
}
);
특정 요청이 불필요해졌거나 취소해야 할 경우에 사용할 수 있습니다.
const CancelToken = axios.CancelToken;
let cancel;
axios.get('/some_endpoint', {
cancelToken: new CancelToken(function executor(c) {
cancel = c;
})
});
// 요청을 취소하고 싶을 때
cancel();
자료 참고 : ChatGPT