fetch() 함수를 알아보자
fetch() 함수가 뭔데?
클라이언트단에서 비동기로 네트워크를 통해 api를 호출해 리소스를 요청하고 응답받을 수 있다.
예전엔 request,axios,jQuery같은 라이브러리를 이용해서 http를 요청하고 응답받았지만 요즘은 브라우저에서 기본으로 fetch()함수를 지원하기 때문에 상대적으로 더 좋은 대체제인 fetch()함수를 사용한다고 합니다.
참고로 fetch는 브라우저에서 제공하는 window객체의 내장객체 이기 때문에 당연하게 node.js같은 환경에서는 사용이 불가하다.
또 익스플로워 같은 구식 브라우저에서 동작하지않을 수 있다.
기본 문법
fetch ('api주소', {옵션 객체}) //기본동작은 get방식으로 동작한다.
fetch()의 리턴값은 Promise이여서 응답객체에 접근할려면 .then을 이용한다.
Get 방식 api호출
fetch('https://jsonplaceholder.typicode.com/posts/1') //then으로 객체에 접근하여 json()함수를 이용해 json 객체로 변경 .then((response) => response.json()) .then((json) => console.log(json));
👇 Output
{ id: 1, title: '...', body: '...', userId: 1 }
- get방식 api호출은 요청body를 받지 않아 2번째 인자 옵션 없이 첫번쩨인자인 api주소만 넣어 사용 가능하다.
코드출처
- get방식 api호출은 요청body를 받지 않아 2번째 인자 옵션 없이 첫번쩨인자인 api주소만 넣어 사용 가능하다.
Post 방식 api호출
fetch('https://jsonplaceholder.typicode.com/posts', {
method: 'POST',
body: JSON.stringify({
title: 'foo',
body: 'bar',
userId: 1,
}),
headers: {
'Content-type': 'application/json; charset=UTF-8',
},
})
.then((response) => response.json())
.then((json) => console.log(json));
👇 Output
{
id: 101,
title: 'foo',
body: 'bar',
userId: 1
}
get 방식 이외에는 api호출을 위해서는 "method: 'POST'" 로 동작방식을 명시해준다.
body는 문자열로 작성해주어야하기때문에 JSON.stringif() 함수를이용해서 문자열로 변환한다.
headers: 속성으로 json으로 명시하여 전송코드가 json임을 서버에 알려주는 역할을 한다.
'Programing > JavaScript' 카테고리의 다른 글
[js] undefined vs null (0) | 2022.11.16 |
---|---|
js) 메서드 call,apply,bind 를 알아보자! (0) | 2022.09.28 |
JS)함수선언문, 함수 표현식 차이 (0) | 2022.09.07 |
javaScript AJAX 를 사용하는 이유 (0) | 2022.02.25 |