Node.js와 브라우저를 위한 Promise 기반 HTTP 비동기 통신 라이브러리이다.
비동기로 HTTP 통신을 가능하게 해주고, REST API에 데이터를 요청할 때, promise 객체로 return 해주기 때문에 response 데이터를 다루기도 쉽다.
npm install axios
yarn add axios
📌 API 서버는 우리가 만든 json-server를 사용해서 배포는 하지 않아도 되고, 한 프로젝트 내에서 3001 포트로 서버를 가동시켜 사용
{
"todos": [
{
"id": "1",
"title": "react"
}
]
}
axios.request(config)
axios.get(url[, config])
axios.delete(url[, config])
axios.head(url[, config])
axios.options(url[, config])
axios.post(url[, data[, config]])
axios.put(url[, data[, config]])
axios.patch(url[, data[, config]])
// url에는 서버의 url이 들어가고, config에는 기타 여러가지 설정을 추가할 수 있습니다.
// config는 axios 공식문서에서 확인하세요.
axios.get(url[, config]) // GET
Axios는 GET
요청을 할 수 있도록 도와주는 패키지일뿐 "어떻게 요청을 해야하지?"와 같은 방식에 대한 확인은 우리가 사용할 API명세서를 봐야 한다는 뜻이다.
json-server의 공식문서를 보면, 전체 정보나 상세 정보는 아래와 같이 path variable
로 url을 작성하면 된다.
그리고 filter와 같은 기능을 위해서 GET
요청을 하고자할 때는 query
로 보내라고 명시하고 있다.
콘솔로 결과를 확인해보니, Todos를 정상적으로 서버에서 가져와서 state가 set한 것을 확인 할 수 있다.
axios.post(url[, data[, config]]) // POST
POST
요청에 대한 로직은 BE 개발자가 구현하는 것이기때문에 추가외에 다른 용도로 사용될 수 있지만, 보통은 클라이언트의 데이터를 body
형태로 서버에 보내고자 할 때 사용합니다. 아래 코드를 작성하기에 앞서, GET
에서 본 것과 같이 json-server의 POST
요청 방식을 확인하기
axios.delete(url[, config]) // DELETE
axios.patch(url[, data[, config]]) // PATCH