Axios
소개
Axios는 HTTP통신을 하는데 매우 인기있는 Javascript라이브러리입니다. Axios는 브라우저와 Node.js 플랫폼에서 모두 사용할 수 있습니다.
또한 IE8이상을 포함한 모든 최신 브라우저를 지원합니다.
Axios는 Promise를 기반으로하여 async/await문법을 사용하여 XHR요청을 매우 쉽게 할 수 있습니다.
Fetch API보다 Axios가 더 좋은 장점은 아래와 같습니다.
- 구형브라우저를 지원합니다.(Fetch API의 경우는 폴리필이 필요합니다.)
- 요청을 중단시킬 수 있습니다.
- 응답 시간 초과를 설정하는 방법이 있습니다.
- CSRF 보호 기능이 내장되어있다.
- JSON 데이터 자동변환
- Node.js에서의 사용
설치
npm에서 설치
1 | npm install axios |
yarn에서 설치
1 | yarn add axios |
또는 단순하게 CDN을 로드해서 사용 할 수 있습니다.
Axios API
axios
객체는 아래와 같이 간단하게 HTTP요청을 할 수 있습니다.
1 | axios({ |
그러나 보기 명확하게 method를 분리하여 사용할 수도 있습니다.
axios.get()
axios.post()
$.ajax()
를 분리해 명확하게 사용하는 $.get()
, $.post()
처럼 사용하는 jQuery와 매우 흡사합니다.
Axios가 아직 핫한 라이브러리는 아니지만 HTTP요청에서 사용하는 다양한 method도 제공하고 있습니다.
axios.delete()
axios.put()
axios.patch()
axios.options()
그리고 HTTP헤더를 가져와 본문을 삭제하는 방법 또한 제공합니다.
GET 요청
Axios를 사용하는 편한 방법 중 하나는 moden javascript의 요소인 async/ await 구문을 사용하는 것 입니다.
이 Node.js예제는 Dog APi를 사용하여 모든 Dog의 breed 목록을 가져와 axios.get()
합니다.
1 | const axios = require('axios'); |
만약 async / await 구문을 사용하지 않는다면 Promise 구문을 사용 할 수 있습니다.
1 | const axios = require('axios'); |
GET 요청에 매개 변수 추가
GET 응답에는 URL에 매개변수가 포함 될 수 있습니다.
https://test.com/?foo=bar
Axios를 사용하여 GET 요청시 간단하게 매개변수를 추가 할 수 있습니다.
1 | axios.get('https://test.com/?foo=bar'); |
또는 params
옵션에서 추가하여 사용 할 수 있습니다.
1 | axios.get('https://test.com/', { |
POST 요청
axios.post
처럼 POST 요청은 axios.get
GET 요청과 같이 거의 같습니다.
1 | axios.post('https://test.com'); |
POST 역시 매개변수를 추가하는방법은 GET과 같습니다.
1 | axios.post('https://test.com/', { |
마무리
axios
를 통해 api 통신을 하는 것은 매우 간단하고, 러닝커브 또한 매우 낮습니다. 순수 자바스크립트를 사용하는 것으로도 매우 간단하게 api통신이 가능하지만 위에 말한 것처럼 axios의 장점을 생각하며, 도입을 권장합니다.
Good Luck