반응형
Axios
공식 문서에 따르면 axios는 node.js와 브라우저를 위한 Promise 기반 HTTP 클라이언트 라이브러리이다.
특징
- 브라우저에서는 XMLHttpRequest 객체, 서버측에서는 http 모듈을 사용한다.
- promise API를 지원한다.
npm install axios
사용법
모듈을 불러와 정의한다.
import axios from 'axios'; // const axios = require('axios');
config 설정
const AUTH_TOKEN = process.env.AUTHTOKEN
// 전역 AXIOS 기본값 설정
axios.defaults.baseURL = 'https://api.example.com';
axios.defaults.headers.common['Authorization'] = AUTH_TOKEN!
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
// 인스턴스 생성시 기본값 설정
const instance = axios.create({
baseURL: 'https://api.example.com',
timeout: 3000
// 3초간 응답을 기다린다.
});
// 인스턴스의 기본값 변경
instance.defaults.baseURL = 'https://api.example2.com';
// 요청에 대한 인터셉터 설정
instance.interceptors.request.use(
(config) => {
console.log("conig === : ", config);
return config;
},
(error) => {
console.error("error === : ", error);
return Promise.reject(error);
}
);
// 응답에 대한 인터셉터 설정
instance.interceptors.response.use(
(response) => {
return response;
},
(error) => {
return Promise.reject(error || "Error");
}
);
get 사용
- axios(config)
axios({
method: 'get',
headers: {
'Content-Type':'application/json'
},
url: '/api/v1/users/1'
})
post 사용
axios({
method: 'post',
headers: {
'Content-Type' : 'application/json'
},
data:{
id: 'id1',
password: 'pw1'
}
})
node-fetch
node-fetch가 axios보다 조금 더 가볍다.
npm install node-fetch
모듈을 불러온다.
import fetch from 'node-fetch';
get 요청
const response = await fetch('https://api.github.com/users/github');
const data = await response.json();
console.log(data);
post 요청
const response = await fetch('https://httpbin.org/post', {
method: 'POST',
body: 'a=1'
})
const data = await response.json();
console.log(data);
post (With Json)
const body = {a: 1};
const response = await fetch('https://httpbin.org/post', {
method: 'post',
body: JSON.stringify(body),
headers: {'Content-Type': 'application/json'}
});
const data = await response.json();
console.log(data);
출처
axios
https://axios-http.com/kr/docs/api_intro
node-fetch
https://www.npmjs.com/package/node-fetch
반응형
'Javascript > Node.js' 카테고리의 다른 글
[ Node.js ] - node.js란? ( + 기본 코드 ) (0) | 2022.06.10 |
---|---|
[ Node.js ] - 서버 DDos 공격 막기 (0) | 2022.06.02 |
[ Node.js ] - swagger-ui (0) | 2022.04.05 |
[ Node.js] - prisma (0) | 2022.04.05 |
[ Node.js ] - express-session (0) | 2022.04.05 |