2021. 9. 19
© WONKOOK LEE
자바스크립트 Promise 체인 이해하기 | 좌표로 국가 정보 가져오기
개요
위도와 경도를 입력하면 해당 좌표의 국가와 도시 정보가 화면에 출력되는 예제로 아래의 기능을 수행한다.
- API와 통신해서 좌표 값으로 국가 정보 가져와 화면에 렌더링하기
- navigator Web API 사용해서 내 위치 정보로 국가 정보 가져오기
학습 목표 🚀
- Fetch API를 이해하고 메소드를 사용할 수 있다.
- Open API에 정보를 요청하고 응답을 받아 정보를 활용할 수 있다.
- Fulfilled Promise와 Rejected Promise의 상황별 예외 처리를 할 수 있다.
- 다른 비동기 함수를 Promise화(Primisifying) 할 수 있다.
학습 키워드 🔑
비동기
, 프로미스 객체
, API
, fetch API
, 에러 핸들링
, 프로미스 체이닝
, REST
, Geocoding
, Promisifying
예제 출처 ⓒ
Jonas Schmedtmann - Asynchronous JS in The Complete JS Course
사용할 APIs
1. REST Countries API 🌎
Get information about countries via a RESTful API 식별자로 특정 국가 정보를 요청하면 국기 이미지 주소를 포함한 개략적인 정보가 담긴 객체를 받을 수 있는 API.
⚠️ V3가 최신 버전이지만 CORS 이슈로 당장은 V2 버전 ‘eu’ 도메인을 사용할 것 (국가 이름은 URL에 쿼리 명시)
- 국가 이름으로 찾기:
https://restcountries.eu/rest/v2/name/{국가 이름}?fullText=true
- 알파-2, 알파-3 코드로 국가 찾기:
https://restcountries.eu/rest/v2/alpha/{알파 코드}
2. Geocode XYZ 📍
This API receives text input and outputs location information in XML, CSV, JSON, GeoJSON Formats.
Geocoding이란? 고유명칭(주소나 산, 호수의 이름 등)을 가지고 위도와 경도의 좌표값을 얻는 것을 말하며, 반대로 위도와 경도값으로부터 고유 명칭을 얻는 것은 Reverse Geocoding이라고 한다.
- Reverse Geocoding:
https://geocode.xyz/{위도},{경도}?outputformat
- JSON 포맷 요청 예시:
https://geocode.xyz/41.3189957000,2.0746469000?json=1)