안녕하세요!
이번 포스팅에서는 React에서 Open API를 통해 데이터를 가져올 때 자주 사용되는 함수인 Axios
와 Fetch
함수에 대해 알아 보도록 하겠습니다!
두 함수에 대한 공통점과 차이점에 대해 정리 해 보도록 하겠습니다.🤔
1. Axios vs. Fetch
- React에서 개발 시 REST API를 호출하기 위해
axios
,fetch
를 활용하는 방법을 소개 해 드리 고자 합니다. - 둘 다 HTTP 클라이언트 라이브러리고
Promise
기반으로 이루어져 있습니다.
2. 사용 사례
2-1. Axios
Axios
함수를 사용 하여 선수의 시즌 아이디 정보를 가져 오는 함수 입니다. (아래는FIGLE
개발 시에 사용된 실제 코드 입니다.)- 여기서는 데이터를 가져오기 위해
Get
함수를 사용 하였고, 받아온 데이터를this.state.seasonResult
에 저장 하였습니다. - 아래 url들은 FIFA Online 개발자 센터 에 있는 데이터 정보 입니다.
const proxyurl = "https://cors-anywhere.herokuapp.com/";
const getSeasonIdDetail = 'https://../../../static/assets.api.nexon.co.kr/fifaonline4/latest/seasonid.json';
axios.get(proxyurl + getSeasonIdDetail).then(response => {
let data = response.data;
this.setState({
seasonResult: data
});
})
2-2. Fetch
Fetch
함수를 사용 하여 선수의 포지션 정보를 가져 오는 함수 입니다. (아래는FIGLE
개발 시에 사용된 실제 코드 입니다.)- 여기서는 데이터를 가져오기 위해
Get
함수를 사용 하였고, api를 통해 받아온 데이터를this.state.positionList
에 저장 하였습니다. - 아래 url들은 FIFA Online 개발자 센터 에 있는 데이터 정보 입니다.
getPositionList = async () => {
const url = '/fifaonline4/latest/spposition.json';
const options = {
method: 'GET',
headers: {
"Access-Control-Allow-Origin": "*",
"Accept": "*/*",
"Host": "../../../static/assets.api.nexon.co.kr",
"Connection":"keep-alive"
}
};
let response = await fetch(url, options);
let responseOK = response && response.ok;
if(responseOK){
let data = await response.json();
this.setState({
positionList: data
});
}
}
3. 결론
- 이번에 FIGLE 개발 시
axios
를 많이 사용 하긴 했는데 개발을 하다 보니 상황에 따라fetch
함수가 더 간단 명료한 경우가 있었습니다. - 그래서 두 가지 중에 무엇이 좋다는 정답은 없는 것 같고, 본인이 개발 하면서 상황에 따라 더 좋은 방향으로 적절하게 사용하는 것이 좋을 듯 합니다!
오늘 준비한 내용은 여기까지 입니다.
이번 포스팅이 도움이 되셨거나 궁금한 점이 있으시다면 언제든지 댓글을 달아주세요!🙋🏻♀️✨