http://api.openweathermap.org/geo/1.0/direct?q=강남&appid=?
날씨 관련 팀 프로젝트를 진행하기 위해 openweathermap APi를 사용해보게 되었다.
사용자가 날씨정보를 요청하는 방법은 2가지
1. 프론트에서 위,경도를 백엔드로 보내주면 백엔드는 내부 로직을 거쳐 날씨 정보를 반환해준다.
2. 프론트에서 도시 이름을 백엔드로 보내주면 백엔드는 내부 로직 (지오코딩으로 위,경도 반환 후 1번의 로직을 이용 )
을 거쳐 날씨 정보를 반환해준다.
지오코딩을 사용했을 때 강남의 위경도는 (37.5177,127.0473)이다. (정확함)
http://api.openweathermap.org/data/2.5/forecast?lat=37.5177&lon=127.0473&appid=?
이것을 위,경도 기반 날씨정보를 알려주는 api에 요청을 하면 날씨 정보와 함께 마지막에 도시정보를 알려준다. (부정확함)
위,경도를 보냈을 때 city값에서 올바르지 않은 지리정보가 왔다
(ex 강남의 위,경도를 보냈는데 도시명은 Sinchon-dong 이라고 옴 -> 신촌인거 같은데?? )
결국에 city에 들어있는 name을 사용할 수 없다는 것이다.
왜 이런 결과가 나오지? 위,경도를 제대로 줘도 도시(지역)명을 제대로 안 알려주는데 이렇게 되면 날씨 데이터를 신뢰할 수 없는거 아냐??
라는 결론에 이르렀고 openWeather Api에 문의해보기로 하였다
위에 말했던 내용들을 영어로 간단하게 정리해서 쓴 문의
날씨 api의 위,경도 기반 지리정보가 이상해 이게 너희들이 의도한게 맞아 ??
답변이 거의 30분만에 왔다
좀 더 정보를 달라는 소리
url의 api에게 요청 보냈을 때 도시정보가 이상해 너희가 의도한게 맞아?? 라고 더 자세하게 설명했다
요약하자면 내가 요청보낸 api의 도시 정보는 deprecated되었다.
정확한 도시 정보를 얻을거면 지오코딩/역지오코딩을 사용하면 된다.
즉, 날씨 데이터는 좌표 기반으로 처리하고, 반환된 도시 이름 정보는 무시하는 것이 좋습니다.
https://openweathermap.org/forecast5
api문서에 보면 deprecated되었어.. 쓰지 말아줘 ... 지오코딩을 써줘
여기저기에 써있었지만..
나는 api를 이렇게 써본 경험이 없었기 때문에 잘 몰랐다..
이렇게 하고 나니깐 좀 더 Api를 다루는게 익숙해진거 같다.
api 사이트에 공식으로 문의해보는 경험을 해보았고
뭔가 잘 안되면 설명서를 다시 읽어보자 라는 교훈을 얻을 수 있었던거 같다