Web-Frontend/JavaScript

[JS] fetch 메소드로 API 호출하기

서노리 2023. 1. 15. 18:27
반응형

fetch()

  • API를 호출하는데 사용되는 자바스크립트 내장 객체
fetch(url, options)
  .then((response) => console.log("response:", response))
  .catch((error) => console.log("error:", error));
  • 첫 번째 인자로 API의 URL, 두 번째 인자로 옵션 객체를 받음
  • 옵션 객체에는 HTTP 방식, HTTP 요청 헤더 등을 설정할 수 있음
  • Promise 타입의 객체를 반환
    - API 호출 성공시(then)에는 응답(response)객체를 resolve하고
    - 실패했을 경우(catch)에는 예외(error) 객체를 reject함

 

API 호출 예제

const getData = async () => {
    const res = await fetch("https://jsonplaceholder.typicode.com/comments")
      .then((res) => res.json());

    const initData = res.slice(0, 20).map((it) => {
      return {
        author: it.email,
        content: it.body,
        emotion: Math.floor(Math.random() * 5) + 1,
        created_date: new Date().getTime(),
        id: dataId.current++
      };
    });
    setData(initData);
  };
  
  
useEffect(() => {
    getData();
}, []);

fetch를 사용하여 API의 URL을 넣어주고, then으로 그 결과값을 json 메소드를 통해서 json 형식으로 받는다.

initData는 API로부터 얻은 데이터 중 20개만 슬라이싱하여 반환하고 map 함수를 통해 json으로부터 필요한 정보만 뽑아내 새로운 배열을 만들었다. useEffect를 사용하여 마운트 시 getData 함수가 실행되도록 해준다.

 


 

반응형

'Web-Frontend > JavaScript' 카테고리의 다른 글

[JS] 자바스크립트의 여러가지 배열 생성 방법  (0) 2023.10.02
[JS] 배열, 객체 복사 방법  (0) 2023.01.29
[JS] async & await  (0) 2023.01.05
[JS] 프로미스(Promise)  (0) 2023.01.05
[JS] 동기와 비동기  (0) 2023.01.04