[iOS] Weather App-Part1.申請API Key/解析JSON
API(Application Programming Interface)/Postman/CodingKey/OpenWeatherMap
本次分成2篇
Part1.申請API Key/解析JSON
Part2.串接OpenWeatherMap/使用TableView呈現
What is an API?
對API的概念還很模糊的話,可以看看這個影片,解釋得非常清楚!
OpenWeatherMap
許多網站都有提供開發者串接API的服務,有些免費,有些就要掏錢出來啦!本次我選擇串接OpenWeatherMap網站上,其中兩組免費的API, Current Weather Data、5Day/3Hour Forecast。
申請流程
- 註冊帳號
2.完成信箱驗證之後再次登入,即可於右上角的下方選單產生屬於你自己的API Keys
閱讀API文件
每組API都附有API文件,必看!
Current Weather Data總共有4種方式可取得資料(城市名稱/城市ID/經緯度/郵遞區號)
若是以city name取資料,網址如下
https://api.openweathermap.org/data/2.5/weather?q={city name}&appid={API Key}
也就是若city name 是Taipei,而取得的API Keys是abcdefgh123456789,網址就會是這樣
https://api.openweathermap.org/data/2.5/weather?q=taipei&appid=abcdefgh123456789
網站也很貼心的示範JSON內容有什麼
對應的資料是什麼也很貼心的附上說明。
像是溫度跟風速,有單位可設定,只要在網址後方再加上去,就可直接取得你想要的單位,不用額外再寫程式轉換。
例如溫度預設是凱式,但若你想要的是攝氏溫度,網址就要寫成下方這樣。
https://api.openweathermap.org/data/2.5/weather?q=taipei&appid=abcdefgh123456789&units=metric
最下方有個項目是支援多種語言,但是只能應用在city name當中的description範圍,以下示範繁中
https://api.openweathermap.org/data/2.5/weather?q=taipei&appid=abcdefgh123456789&units=metric&lang=zh_tw"
API文件了解的差不多之後,接下來就是解析JSON啦!
解析JSON
可使用Postman解析網址,也可以用許多免安裝的解析JSON網站解析資料
解析邏輯可參考這篇
解析完成之後如下,若所要製作的App不需要這麼多資料,就抓想要的出來即可
若不滿意預設的property格式,比如有底線,可以運用CodingKey客製化,
要特別注意的事情是,enum 後方的CodingKeys大小寫要完全一樣,我因為K打成小寫,就抓不到資料了😞
前置作業就到這邊了,接下來就是寫程式啦!