Application Programming Interface
클라이언트가 리소르를 잘 활용할 수 있도록 서버가 제공하는 인터페이스
보통 인터넷에 있는 데이터를 요청할 때에는 HTTP라는 프로토콜을 사용하며, 주소(URL,URI)을 통해 접근할 수 있다.
API를 이용하기 위해 필요한 열쇠로 생각하면 된다.
데이터 포털에서 회원가입을 하면 자원에 접근할 수 있는 권한을 API Key 형태로 제공해주고, 이를 요청에 같이 전달할 때 자원을 이용할 수 있다.
fetch를 이용하면 리소스를 비동기로 요청할 수 있다.
fetch를 호출하면 브라우저는 요청을 보내고 Promise 객체를 반환한다. 요청이 완료되면 성공여부에 관계없이 Promise가 resolved 되어 Response 객체를 반환한다. HTTP 요청이 완료되지 못한 상태라면 Promise가 rejected 된다. 이 경우엔 catch()를 이용하여 에러를 처리할 수 있다.
Response 객체는 응답에 대한 정보를 담고있다.
fetch(`https://api.openweathermap.org/data/2.5/weather?q=${inputCity}&lang=kr&appid=6ba138ee811dda538908b3fe6e3bae00`)
.then(function (resp) {
//Response를 JSON형태로 파싱
return resp.json()
})
.then(function (json) {
//JSON형태로 파싱된 결과가 객체화되어 매개변수 json으로 들어온다.
//json을 활용할 수 있다.
renderWeatherData(json);
}).catch(function () {
//요청이 완료되지 못한 경우 catch()가 실행된다.
alert('지역 이름을 정확히 입력해주세요');
inputSearch.value = '';
renderWeatherData();
return;
});