연습장
Axios 란? 본문
Axios는 Promise 기반의 HTTP 클라이언트 라이브러리로, 브라우저와 Node.js 환경에서 모두 사용할 수 있습니다.
Axios는 다음과 같은 주요 특징을 가지고 있습니다:
- 간편한 API: 요청을 만들고 보낼 때 간편하고 직관적인 API를 제공합니다.
- HTTP 요청과 응답을 Promise로 처리: 비동기 작업을 처리할 때 Promise를 사용하여 요청을 보내고 응답을 받습니다.
- 자동 변환: JSON 데이터를 자동으로 파싱하고, ArrayBuffer 또는 Blob과 같은 바이너리 데이터를 처리할 수 있습니다.
- 요청/응답 인터셉터: 요청이나 응답을 인터셉트(intercept)하여 중간에 수정할 수 있는 기능을 제공합니다.
- CSRF 보호: 기본적으로 XSRF(Cross-Site Request Forgery) 보호를 제공합니다.
- 취소 요청: 요청을 취소할 수 있는 기능을 제공하여 불필요한 네트워크 요청을 줄일 수 있습니다.
- 서버 및 클라이언트 환경에서 사용 가능: 브라우저와 Node.js 환경에서 모두 사용할 수 있습니다.
npm install axios
서버로 데이터를 전송하는 방식
- GET:
- 목적: 데이터를 요청하기 위해 사용.
- 데이터 전송: URL의 쿼리 문자열(query string)을 통해 전송.
- 보안: URL에 데이터가 노출되어 보안에 취약할 수 있음.
- 캐싱: 응답을 캐싱할 수 있음.
- 제한: 데이터 전송에 크기 제한이 있을 수 있음.
- POST:
- 목적: 데이터를 서버로 제출하거나 업데이트하기 위해 사용.
- 데이터 전송: HTTP 요청의 본문(body)에 포함하여 전송.
- 보안: URL에 데이터가 노출되지 않아 보안적으로 더 강력함.
- 캐싱: 일반적으로 응답을 캐싱하지 않음.
- 제한: 일반적으로 데이터 전송에 크기 제한이 더 큼.
Get - Fetch
async function getProducts() {
const products = await res.json();
return products;
}
Get - Axios
import './App.css';
import axios from 'axios';
import React, { useEffect, useState } from 'react';
function App() {
const [data, setData] = useState(null);
useEffect(() => {
// GET 요청을 보낼 URL
// axios를 사용하여 GET 요청 보내기
axios.get(url)
.then(response => {
// 성공적으로 데이터를 받았을 때 실행될 코드
console.log('GET 요청 성공:', response.data);
setData(response.data); // 받은 데이터를 상태에 저장
})
.catch(error => {
// 오류 발생 시 실행될 코드
console.error('GET 요청 오류:', error);
});
}, []);
return (
<div>
<h1>GET 요청 예제</h1>
{data ? (
<div>
<h2>Title: {data.title}</h2>
<p>Body: {data.body}</p>
</div>
) : (
<p>Loading...</p>
)}
</div>
);
}
export default App;
Post - Fetch
async function createSizeReview(body) {
const res = await fetch(
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(body),
}
);
const newSizeReview = await res.json();
return newSizeReview;
}
Post - Axios
import './App.css';
import axios from 'axios';
import React, { useEffect, useState } from 'react';
function App() {
const [postData, setPostData] = useState({ title: '', body: '' });
// POST 요청을 보내는 함수
const handlePostRequest = () => {
// POST 요청을 보낼 URL
// axios를 사용하여 POST 요청 보내기
axios.post(url, postData)
.then(response => {
// 성공적으로 데이터를 받았을 때 실행될 코드
console.log('POST 요청 성공:', response.data);
// POST 요청 후 처리할 코드 작성
})
.catch(error => {
// 오류 발생 시 실행될 코드
console.error('POST 요청 오류:', error);
});
};
return (
<div>
<h1>POST 요청 예제</h1>
<form>
<label>Title:</label>
<input
type="text"
value={postData.title}
onChange={(e) => setPostData({ ...postData, title: e.target.value })}
/>
<br />
<label>Body:</label>
<textarea
value={postData.body}
onChange={(e) => setPostData({ ...postData, body: e.target.value })}
/>
<br />
<button type="button" onClick={handlePostRequest}>Submit</button>
</form>
</div>
);
}
export default App;
https://www.codeit.kr/tutorials/47/Axios-%EC%82%AC%EC%9A%A9%EB%B2%95
'기타' 카테고리의 다른 글
렌더링 방식 (SSR,CSR, SPA, MPA) (0) | 2024.07.25 |
---|---|
HTTP 요청 (0) | 2024.07.25 |
HTTP 클라이언트/서버 라이브러리란? (0) | 2024.07.24 |
js 에서 오버로딩이란? (0) | 2024.07.24 |
01. 면접 대비 (0) | 2024.07.24 |