[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。

申請流程

  1. 註冊帳號

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打成小寫,就抓不到資料了😞

前置作業就到這邊了,接下來就是寫程式啦!

--

--