웹 애플리케이션을 빌드할 때 외부 리소스에 액세스하기 위해 HTTP 요청을 수행하려는 경우가 있습니다. 예를 들어 블로그를 만들고 있다고 가정합니다. API를 호출하여 각 블로그 게시물에 표시할 댓글 목록을 검색할 수 있습니다.
Axios는 웹 요청을 만드는 데 사용할 수 있는 인기 있는 JavaScript 라이브러리입니다. 이 가이드에서는 axios를 사용하여 GET 요청을 만드는 방법을 설명합니다. 몇 가지 예를 통해 axios가 작동하는 방식과 코드에서 사용하는 방법을 보여드리겠습니다.
Axios가 필요한 이유
Axios는 웹 요청을 쉽게 만들 수 있는 약속 기반 라이브러리입니다.
왜 다른 많은 웹 요청 라이브러리보다 axios를 사용해야 합니까? GET 요청을 만드는 데 사용할 수 있는 fetch와 같은 다른 라이브러리가 있는 것은 사실이지만 axios에는 이러한 라이브러리에 없는 많은 이점이 있습니다.
Axios는 이전 브라우저를 지원하므로 보다 접근 가능한 사용자 환경을 만들 수 있습니다. Axios에는 취약성을 방지하기 위해 CSRF 보호 기능이 내장되어 있습니다. Node.js에서도 작동하므로 프론트엔드 또는 백엔드 웹 애플리케이션을 모두 개발할 때 유용합니다.
Axios 설치 방법
axios를 사용하여 GET 요청을 하기 전에 라이브러리를 설치해야 합니다. 다음 명령을 사용하여 수행할 수 있습니다.
npm install axios --save
이 명령은 axios를 설치하고 로컬 package.json 파일에 저장합니다. 이제 axios 라이브러리를 사용할 준비가 되었습니다.
Axios를 사용하여 요청하는 방법
axios를 시작하는 것은 간단합니다. 웹 요청을 하려면 데이터를 요청하려는 URL과 사용하려는 방법을 지정하기만 하면 됩니다.
참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.
부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.
cat-facts API에서 고양이에 대한 임의의 사실 목록을 검색한다고 가정합니다. 다음 코드를 사용하여 그렇게 할 수 있습니다.
axios ({ url: "https://cat-fact.herokuapp.com/facts", method: "GET" )}
이 코드는 아직 완료되지 않은 요청을 나타내는 약속을 반환합니다. 이 HTTP 요청에서 데이터를 검색하려면 다음과 같이 async/await 함수를 사용합니다.
const axios = require("axios"); async function getCatFacts() { const response = await axios ({ url: "https://cat-fact.herokuapp.com/facts", method: "GET" }) console.log(response.data) } getCatFacts()
서버는 고양이 사실 목록으로 응답했습니다.
이 함수를 호출하면 cat-facts API에 HTTP GET 요청이 생성됩니다. 웹 요청이 완료될 때까지 프로그램이 계속되지 않도록 async/await 기능을 사용합니다. axios가 먼저 약속을 반환하기 때문입니다. 요청이 완료된 후 요청에서 데이터를 반환합니다.
axios 라이브러리에는 웹 요청을 만드는 데 사용할 수 있는 몇 가지 축약형 명령이 있습니다.
- axios.get()
- axios.post()
- axios.delete()
- axios.put()
- axios.patch()
- axios.options()
이 튜토리얼에서는 axios.get()
에 초점을 맞출 것입니다. 및 axios.post()
다른 모든 축약 방법과 동일한 기본 구문을 사용하는 방법입니다.
axios를 사용하여 GET 요청하기
마지막 예에서는 axios를 사용하여 GET 요청을 했습니다. 그러나 axios로 GET 요청을 하는 더 간단한 방법이 있습니다:axios.get()
사용 .
고양이 정보 목록을 검색한 다음 반환된 항목 수를 계산한다고 가정합니다. 다음 코드를 사용하여 그렇게 할 수 있습니다.
const axios = require("axios"); async function getCatFacts() { const response = await axios.get("https://cat-fact.herokuapp.com/facts") console.log(`{response.data.all.length} cat facts were returned.`) } getCatFacts()
코드는 다음 응답을 생성했습니다. 225개의 고양이 정보가 반환되었습니다.
코드를 분해해 보겠습니다. 먼저 getCatFacts()
라는 비동기 함수를 선언했습니다. 여기서 우리는 웹 요청을 합니다.
그런 다음 axios.get()
을 사용합니다. cat-facts API에서 고양이 정보 목록을 검색합니다. "response.data"는 요청의 응답 객체와 요청 본문을 보유합니다.
마지막으로 .length 속성을 사용하여 요청에서 반환된 고양이 정보 수를 계산합니다. 그런 다음 이 숫자를 "고양이 사실이 반환되었습니다"라는 문자열에 추가합니다.
axios를 사용하여 헤더 보내기
GET 요청을 할 때 요청하는 웹 리소스에 사용자 지정 헤더를 보내야 할 수도 있습니다. 인증이 필요한 API에서 데이터를 검색한다고 가정합니다. 인증 헤더를 지정해야 할 수도 있습니다.
axios 요청으로 헤더를 지정하려면 다음 코드를 사용할 수 있습니다.
axios.get("https://urlhere.com", { headers: { "header-name": "header-value" } })
이 코드는 값이 "header-name"인 "header-name"을 우리가 지정한 URL로 보냅니다.
axios를 사용하여 매개변수 보내기
많은 API를 사용하면 GET 요청에서 매개변수를 보낼 수 있습니다. 예를 들어 API를 사용하면 limit 매개변수를 사용하여 반환되는 응답 수를 제한할 수 있습니다.
axios를 사용하면 웹 요청과 함께 보낼 매개변수를 쉽게 지정할 수 있습니다. 매개변수를 쿼리 문자열로 포함하거나 params 속성을 사용할 수 있습니다. 다음은 쿼리 문자열을 사용하여 매개변수를 지정하는 웹 요청을 만드는 axios의 예입니다.
axios;get("https://urlhere.com/?date=2020-05-15")
또는 다음 코드를 사용하여 axios 옵션에서 params 속성을 지정할 수 있습니다.
axios;get("https://urlhere.com/?date=2020-05-15", { params: { date: "2020-05-15" } })
이 두 예는 모두 이름이 "date"이고 값이 "2020-05-15"인 매개변수를 지정된 URL로 보냅니다.
axios를 사용하여 POST 요청을 만드는 방법
POST 요청을 만드는 구문은 GET 요청을 만드는 것과 동일합니다. 차이점은 axios.post()
를 사용해야 한다는 것입니다. axios.get()
대신 메소드 .
API에 게시 요청을 하려고 한다고 가정합니다. 다음 코드를 사용하여 수행할 수 있습니다.
axios.post("https://urlhere.com")
GET 요청을 할 때와 같은 방식으로 헤더와 매개변수를 지정할 수 있습니다. POST 요청과 함께 값이 "James"인 "Name" 헤더를 보내려고 한다고 가정해 보겠습니다. 다음 코드를 사용하여 그렇게 할 수 있습니다.
axios.post("https://urlhere.com", { headers: { "Name": "James" } })
결론
axios 라이브러리는 JavaScript에서 웹 요청을 만드는 데 사용됩니다. JavaScript를 사용하는 프런트 엔드 또는 Node.js와 같은 플랫폼을 사용하는 백엔드 모두에서 사용할 수 있습니다. 다른 웹 요청 라이브러리와 달리 axios는 CSRF 보호 기능이 내장되어 있으며 이전 브라우저를 지원하며 약속 구조를 사용합니다. 웹 요청을 하는 데 적합합니다.
이제 전문 웹 개발자처럼 axios를 사용하여 GET 및 POST 요청을 할 준비가 되었습니다.