✔️ HTTP 요청 메서드 종류
- GET : 리소스를 요청할 때 사용
- POST : 리소스를 새로 만들 때 사용
- PUT : 리소스를 수정 할 때 사용 (전체 수정)
- PATCH : 리소스를 부분 수정 할 때 사용 (일부 수정)
- DELETE : 리소스를 삭제 할 때 사용
✔️ HTTP의 특징 2가지
- 비연결성 (connectionless)
- 클라이언트와 서버가 연결을 맺고, 클라이언트의 요청에 대해 서버가 응답을 마치면 연결을 끊는 것- 무상태성 (stateless)
- 서버가 클라이언트를 식별하지 못해 이전 요청이나 다음 요청을 기억하지 못하는 것
✔️ fetch() 함수로 API 호출하기
- GET 호출 (리소스 요청)
fetch('https://API.주소') .then(response => response.json()) // 응답의 body의 JSON 포맷을 해석해준다 .then(data => console.log(data))
- POST 호출 (리소스 생성)
fetch('https://API.주소', { method: 'POST', // 메서드 옵션 headers: { 'Content-Type': 'application/json', // JSON 포맷을 사용한다는 의미 }, data: JSON.stringify({ // 요청 body를 JSON 포맷으로 직렬화 시켜서 보내준다 title: 'practice', body: 'I am calling out POST', userId: 1, }), }) .then(response => response.json()) // 응답의 body의 JSON 포맷을 해석해준다 .then(data => console.log(data))
- PUT 호출 (리소스 수정)
fetch('https://API.주소/1', { method: 'PUT', // 메서드 옵션 headers: { 'Content-Type': 'application/json', // JSON 포맷을 사용한다는 의미 }, data: JSON.stringify({ // 요청 body를 JSON 포맷으로 직렬화 시켜서 보내준다 title: 'practice', body: 'I am calling out POST', userId: 1, }), }) .then(response => response.json()) // 응답의 body의 JSON 포맷을 해석해준다 .then(data => console.log(data))
- DELETE 호출 (리소스 삭제)
fetch('https://API.주소/1', { method: 'DELETE', // 보낼 데이터가 없기 때문에 headers/data 옵션이 필요 X }) .then(response => response.json()) // 응답의 body의 JSON 포맷을 해석해준다 .then(data => console.log(data))
fetch()
함수는 브라우저의 window 객체에 소속되어 있기 때문에 window.fetch()
로 사용된다.