본문 바로가기
프로그래밍

JS fetch()

by Youngbin Kwon 2020. 9. 9.

fetch는 사용자 정보 가져오기, 주문사항 전송, 사용자 정보 삭제 등 서비스의 서버단에 네트워크 요청을 보내야 할 때 사용하는 자바스크립트 내장 메소드입니다. fetch의 기본 문법은 아래와 같습니다.

 

let promise = fetch(url, [options])

url : 접근하고자 하는 url (보통 API)

options : 헤더 정보, method등을 지정할 수 있음

 

fetch 처리순서

fetch 메소드를 호출하게 되면 브라우저는 지정한 url에 네트워크 요청을 보내고, Promise 형태로 반환을 받습니다. 이 때, 서버에서 응답 헤더 데이터를 먼저 받고, 이 때 Promise는 HTTP 상태 코드를 가지고 있어 정상적으로 요청이 처리되었는지를 확인할 수 있습니다. 이후, 본문(body)데이터가 도착하고, 사용자는 .then함수를 통해 처리한 데이터에 추가 작업을 수행할 수 있습니다.

 

let response = await fetch(url);

if (response.ok) { // HTTP 상태 코드가 200~299일 경우
  // 응답 본문을 받습니다(관련 메서드는 아래에서 설명).
  let json = await response.json();
} else {
  alert("HTTP-Error: " + response.status);
}

이러한 특성 때문에, 일반적으로 response로 받은 결과의 처리를 위해서는 아래와 같이 코드를 사용합니다.

 

fetch(url, options).then(res => res.json()).then(res => console.log(res))

 

let response = await fetch(url);
let commits = await response.json();
console.log(commits);

 

요청 options

서버에서 단순 데이터를 요청할 때는 GET메소드를 사용하지만, 새로운 데이터를 저장하거나, 삭제 등의 업무를 수행할 수 있습니다. 이 때는 fetch 메소드의 options인자를 통해 요청 방식을 지정할 수 있습니다.

 

fetch('https://api.google.com/user', {
    method: 'post',
    body: JSON.stringify({
        name: "yeri",
        batch: 1
    })
  })
  .then(res => res.json())
  .then(res => {
    if (res.success) {
        alert("저장 완료");
    }
  })

 

'프로그래밍' 카테고리의 다른 글

[westagram] 인스타그램 클론 팀프로젝트 후기  (2) 2020.09.11
wecode +23 (9/9)  (0) 2020.09.10
wecode +22 (9/8)  (0) 2020.09.09
wecode +21 (9/7)  (0) 2020.09.08
React 6 - Props & 이벤트  (0) 2020.09.07

댓글