분류 javascript

Axios로 RESTful API를 사용하는 방법

컨텐츠 정보

  • 조회 492 (작성일 )

본문

프론트 엔드 개발자는 API에서 데이터를 소비하는 방법을 아는 것이 매우 중요합니다. 

이 기사에서는 API가 무엇인지, 그리고 웹 앱에 강력한 기능을 제공하기 위해 http를 통해 API에서 데이터를 소비하는 방법에 대해 설명합니다.


https://codesource.io/how-to-consume-restful-apis-with-axios/ 


JavaScript 및 NodeJ의 작동 방식에 대한 충분한 지식이 있다고 가정합니다.


API 란 무엇입니까? 


“API”라는 단어는 약어이며“Application Programming Interface”를 나타냅니다.


식당의 웨이터라고 생각하면, 당신 (클라이언트)은 요리사인 서버에 요청을 하고, 웨이터로부터 주문을 받고, 웨이터가 준비가 되면 서비스를 제공 할 준비를 합니다.


API는 서버와 응용 프로그램 사이의 중개인과 같습니다.


axios APIs 


Axios로 API 소비 


Axios는 노드 앱에서 HTTP 요청을 하기 위한 NPM 패키지입니다. 우리는 사용자 목록을 가져 와서 자체 사이트에 결과를 출력하는 데모 앱을 구축 할 것입니다.


또한 이 자습서를 위한 프로젝트를 설정했다고 가정합니다. 그렇지 않으면 새 폴더를 만들고 터미널의 해당 디렉토리에서 npm init -y를 실행할 수 있습니다. 두 개의 파일이 생성됩니다. index.js 및 package.json.


다음으로 npm install --save axios를 실행하여 axios를 설치해야 합니다. 설치 후 package.json 파일의 변경 사항을 확인해야 합니다.


간단한 요청 받기


먼저, 사용자가 볼 수 있도록 외부 API에서 웹 페이지로 소비 한 데이터를 전달하기 위해 서버를 스핀 업해야 합니다. 이를 위해 내장 된 http module in 노드를 사용합니다. 아래 코드 스니펫은 요청이 있을 때마다 "hello world"를 표시하는 기본 서버를 만듭니다.


const http = require('http'); http.createServer((req, res)=>{ res.write"Hello world n"); // write a response res.end(); //end the response }).listen(8000); // listen for requests on port 8000 



브라우저를 열고 localhost : 8000으로 이동하면 페이지에 "Hello world"가 표시됩니다.


이제 외부 API에 http 요청을 시작하기 위해 axios 모듈을 가져오고 axios.get()을 사용하여 엔드 포인트에 GET 요청을 작성합니다.


const http = require('http'); const axios = require('axios'); http.createServer((req, res)=>{ res.write"Hello world n"); // write a response res.end(); //end the response }).listen(8000); // listen for requests on port 8000 let users = []; // names of users will be stored here axios.get("https://jsonplaceholder.typicode.com/users") .then(({ data }) => { users = data.map(user => user.name); // get only the names of the users and store in an array }) .catch(error=>{ console.log(error); }); 


여기 axios의 공식 Github 저장소에서 다음과 같이 말합니다.


브라우저 및 node.js에 대한 약속 기반 HTTP 클라이언트 액시 오스 ReadMe 파일


따라서 axios로 요청하면 .then()을 사용하여 데이터가 반환 될 때 수신하고 그 안에서 논리를 수행 할 수 있는 약속을 반환합니다. 기본적으로 Axios는 약속을 지원하며 async/await를 사용할 수 있습니다.


let users = []; // names of users will be stored here (async function getNames(){ try{ const {data} = await axios.get("https://jsonplaceholder.typicode.com/users"); users = data.map(user=>user.name); } catch(error){ console.log(error) } })() 


앞서 살펴본 바와 같이 인수로 전달 된 응답에서 데이터 변수를 구성 해제하는 중입니다. 이는 axios가 요청에 대한 메타 데이터가 포함 된 객체를 반환하기 때문입니다. 주 결과는 객체의 데이터 키에 값으로 저장됩니다.


이제 데이터를 가져 와서 형식화 할 수 있게 되었으므로 응답시 이를 고객에게 제공해야 합니다.


전체 코드는 다음과 같습니다.


var http = require("http");
const axios = require("axios").default;

//create a server object:
http
  .createServer(function(req, res) {
    res.write(users.join("n n")); //display the list of users on the page
    res.end(); //end the response
  })
  .listen(8080); //the server object listens on port 8080

let users = [];

(async function getNames() {
  try {
    const { data } = await axios.get(
      "https://jsonplaceholder.typicode.com/users"
    );
    users = data.map(user => user.name);
  } catch (error) {
    console.log(error);
  }
})();
 

물론 다른 요청 방법이 있습니다


이 데모는 axios가 지원하는 다양한 방법 중 하나만 사용합니다. 다음은 몇 가지 목록입니다.

  1. axios.put()
  2. axios.post()
  3. axios.patch()
  4. axios.patch()

Axios에 대한 자세한 내용은 여기 문서를 참조하십시오.