Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript 가져오기:가이드

바닐라 JavaScript로 웹 요청을 할 수 있다는 것을 알고 계셨습니까? 맞습니다. 웹 요청을 하기 위해 라이브러리를 설치할 필요가 없습니다. 그게 다가 아닙니다. 우리는 오래되고 복잡한 XMLHttpRequest 도구에 대해 이야기하는 것이 아닙니다.

가져오기 API를 사용하면 일반 이전 JavaScript로 Ajax 요청을 수행할 수 있습니다. 웹 서버에서 데이터를 검색하고 데이터를 변경하는 데 유용한 도구입니다.

이 가이드에서는 fetch API가 무엇이며 API를 사용하여 웹 요청을 만드는 방법에 대해 설명합니다. GET 요청과 POST 요청의 두 가지 예를 살펴보겠습니다.

Fetch API란 무엇입니까?

JavaScript는 이제 오랫동안 네트워크 요청을 보낼 수 있었습니다. XMLHTTPRequest 도구는 서버에서 데이터를 검색하고 서버에서 정보를 업데이트하는 데 필요한 리소스를 제공했습니다.

이 도구는 효과적이기는 했지만 매우 장황하고 사용하기 복잡했습니다. 반면 Fetch는 웹 요청을 더 간단하게 만드는 새로운 대안입니다.

fetch API는 모든 최신 브라우저에서 지원됩니다. 즉, 사용 방법을 배우면 웹 요청을 할 때 브라우저 호환성에 대해 걱정할 필요가 없습니다.

Fetch를 사용하여 GET 요청을 만드는 방법

가져오기가 작동하는 방식을 설명하는 가장 좋은 방법은 예제입니다. 이 튜토리얼에서는 웹 서비스 JSONPlaceholder를 사용할 것입니다. 이것은 웹 요청을 테스트하는 데 사용할 수 있는 미리 작성된 더미 데이터와 함께 제공되는 API입니다.

다음 코드는 JSONPlaceholder에서 첫 번째 게시물을 검색하기 위한 GET 요청을 생성합니다.

참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.

부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.

fetch('https://jsonplaceholder.typicode.com/posts/1')
  .then(response => response.json())
  .then(json => console.log(json))

이 코드는 다음을 반환합니다.

{ body: "quia et suscipit suscipit recusandae consequuntur expedita et cum reprehenderit molestiae ut ut quas totam nostrum rerum est autem sunt rem eveniet architecto", id: 1, title: "sunt aut facere repellat provident occaecati excepturi optio reprehenderit", userId: 1 }

코드를 분해해 보겠습니다. 첫 번째 줄에서 fetch()를 사용했습니다. JSONPlaceholder API에 대한 웹 요청을 시작하는 메서드입니다. 그런 다음 .then()을 사용했습니다. 웹 요청이 이루어진 후 코드에 수행할 작업을 알려주는 메서드입니다.

첫 번째 .then()에서 메서드에서 API에서 반환된 응답을 JSON으로 변환합니다. 이렇게 하면 데이터를 더 쉽게 읽을 수 있습니다. 다른 .then()를 사용합니다. 콘솔에 응답을 기록하는 메서드입니다. 이것은 JSONPlaceholder API에서 ID가 1인 게시물을 보여줍니다.

POST 요청 방법

GET은 fetch API로 만들 수 있는 유일한 요청 유형이 아닙니다. POST, PUT 및 DELETE 요청을 지원하는 기능도 있습니다. 이들의 구문은 동일하므로 한 가지 예를 살펴보겠습니다. POST 요청을 만드는 방법입니다.

POST, PUT 또는 DELETE 요청을 할 때 일반적으로 지정해야 하는 세 가지 정보가 있습니다.

  • 요청하는 URL입니다.
  • 요청에 사용하는 방법(이 경우 POST)
  • 서버에 보내고 싶은 데이터

다음은 JSONPlaceholder API를 사용하여 새 주석을 만드는 코드 스니펫입니다.

const data = {
	name: "Leslie Tudor",
	email: "[email protected]",
	body: "This is an example post by Career Karma!",
	postId: 1
}

const options = {
	method: "POST",
	body: JSON.stringify(data),
	headers: {
		"Content-Type": "application/json"
	}
};

fetch('https://jsonplaceholder.typicode.com/comments', options)
  .then(response => response.json())
  .then(json => console.log(json))

코드는 JSON 형식으로 새로 생성된 게시물을 반환합니다.

{ body: "This is an example post by Career Karma!", email: "[email protected]", id: 501, name: "Leslie Tudor", postId: 1 }

코드에서 먼저 데이터 개체를 선언합니다. 이것은 우리가 서버로 보내려는 데이터를 저장합니다. 이 경우 Leslie Tudor라는 사용자가 작성한 댓글에 대한 데이터를 전송합니다.

그런 다음 가져오기 요청과 관련된 옵션을 저장하는 다른 객체를 선언합니다. 이 객체는 우리가 요청(POST)하는 데 사용하는 방법, 보내려는 데이터 및 보내려는 헤더를 지정합니다.

마지막으로 fetch()를 사용합니다. 실제로 요청하는 방법입니다. 첫 번째 예에서와 같이 .then()을 사용합니다. 메소드를 사용하여 응답을 검색하고 JSON으로 변환한 다음 콘솔에 인쇄합니다.

자바스크립트 가져오기를 사용하여 오류를 처리하는 방법

일부 웹 요청이 의도한 대로 작동하지 않는 것은 불행한 사실입니다. 데이터가 잘못 구성되었거나 서버 문제가 있을 수 있습니다. 이러한 이벤트가 발생할 경우 처리할 수 있도록 이러한 이벤트를 미리 예측하는 것이 중요합니다.

.catch()라는 메소드가 있습니다. 코드에서 반환된 오류를 포착하는 데 사용할 수 있습니다. Promise.reject()와 결합 메서드를 사용하여 오류를 처리할 수 있습니다.

fetch('https://jsonplaceholder.typicode.com/comments/999, options)
  .then(response => {
	if (response.ok) {
		console.log(response.json());
		return response.json();
	} else {
		return Promise.reject({ statusText: response.statusText })
	}
})
.catch(error => console.log("ERROR:", error.statusText));

이 코드는 다음을 반환합니다.

"ERROR:", "Not Found"

우리 코드에서 우리는 우리의 요청이 성공했는지 확인하기 위해 response.ok 메소드를 사용했습니다. 이 예에서는 존재하지 않는 주석 #999를 검색하려고 했습니다. 이로 인해 else 거부된 약속을 반환하는 실행될 문. 이 약속에는 JSONPlaceholder API에서 반환된 오류 메시지가 포함되어 있습니다.

그런 다음 .catch()를 사용했습니다. 명령문을 사용하여 이 오류를 수신하고 콘솔에 인쇄합니다.

결론

fetch API를 사용하면 JavaScript로 웹 요청을 쉽게 할 수 있습니다. API는 바닐라 JavaScript의 일부이므로 라이브러리를 설치하거나 참조할 필요가 없습니다. 또한 fetch API를 사용하여 GET, POST, PUT 및 DELETE 요청을 할 수 있습니다.

이제 전문 개발자처럼 fetch API를 사용하여 웹 요청을 할 준비가 되었습니다!