728x90
반응형
HTTP 요청을 보내는데에 Ajax, Axios, fetch 등을 사용할 수 있다.
Axios와 Fetch는 결국 Ajax 를 구현하는 라이브러리 또는 API로 볼 수 있는데
3개의 간단한 개념을 알아보고, Axios 의 사용법에 대해서 자세히 알아보자
Ajax 란?
- Ajax 쓰면 GET, POST 요청할 때 새로고침 없이 데이터 주고받기가 가능하다.
- Asynchronous JavaScript and XML 의 약자로 비동기적으로 서버와 통신해서 웹 페이지를 업데이트 할 수 있다.
- Ajax 는 XMLHttpRequest 객체를 사용해서 HTTP 요청을 보내고 응답을 처리한다.
- (오래된 방식의 비동기 통신 방식임)
- 주로 jQuery 의 Ajax 모듈을 사용한다고 한다.
Axios 란?
- Promise 기반의 HTTP 클라이언트 라이브러리이다.
- 브라우저와 Node.js에서 모두 사용이 가능하다.
- Axios 는 Ajax 와 마찬가지로 HTTP 요청을 보내고 응답을 처리하는데 더 간결하고 사용하기 쉬운 API를 제공한다.
- jQuery 없이 사용 가능하다.
Fetch 란?
- 웹 브라우저에 내장된 API
- Promise 를 반환
- Axios 와 유사한 간단한 구문과 기능을 가짐
- Fetch API 는 모던 브라우저에서 지원됨
쌩자바스크립트 문법이다. fetch 쓰려면 json 을 object나 array 로 바꿔주는 과정이 필요하다
fetch('URL').then(결과 => 결과.json()).then((결과) => { console.log(결과) } )
Axios 사용법
설치
npm install axios
GET 요청 보내기
// Axios 라이브러리를 가져옵니다.
const axios = require('axios');
// GET 요청을 보냅니다.
axios.get('https://api.example.com/data')
.then(response => {
// 성공적인 응답을 처리합니다.
console.log(response.data);
})
.catch(error => {
// 에러를 처리합니다.
console.error(error);
});
POST 요청 보내기
const axios = require('axios');
// POST 요청에 보낼 데이터
const data = {
username: 'john',
password: 'secret'
};
// POST 요청을 보냅니다.
axios.post('https://api.example.com/login', data)
.then(response => {
// 성공적인 응답을 처리합니다.
console.log(response.data);
})
.catch(error => {
// 에러를 처리합니다.
console.error(error);
});
HTTP 헤더 설정하고 GET 요청 보내기
const axios = require('axios');
// GET 요청을 보낼 때 사용할 헤더
const headers = {
Authorization: 'Bearer your_token',
'Content-Type': 'application/json'
};
// 헤더를 포함하여 GET 요청을 보냅니다.
axios.get('https://api.example.com/data', { headers })
.then(response => {
// 성공적인 응답을 처리합니다.
console.log(response.data);
})
.catch(error => {
// 에러를 처리합니다.
console.error(error);
});
동시에 요청 여러개 날리기
Promise.all([axios.get('https://api.example.com/data1'), axios.get('https://api.example.com/data2')])
.then(results => {
console.log(results[0].data); // URL1의 응답 데이터
console.log(results[1].data); // URL2의 응답 데이터
})
.catch(error => {
console.error(error);
});
Promise.all() 은 여러개의 프로미스를 동시에 실행하고, 모든 프로미스의 결과를 기다리는 메서드이다.
제공된 모든 프로미스가 성공적으로 완료될 때까지 기다리고, 결과를 배열로 반환한다.
728x90
반응형