iT邦幫忙

2026 iThome 鐵人賽

DAY 11
0

一、前言

經過前面的書籍 API 和電影 API,
已經實際操作過兩種不同類型的公開 API,
雖然每個 API 提供的資料不一樣,
但使用的方式其實有很多相似的地方,
都是透過 URL 發送 Request,
再從 Response 中取得 JSON 格式的資料。

今天開始要進入第三種 API:天氣 API。

天氣資料也是日常生活中很常見的一種資料,
像是目前溫度、天氣狀況、風速等,都可以透過 API 取得。
因此這次想從天氣 API 開始,
看看不同類型的 API 又會提供什麼樣的資料。

⸻

二、什麼是天氣 API?

天氣 API 簡單來說就是提供天氣相關資料的 Web API。

平常我們使用天氣 App 或網站時,
可以直接看到某個地區目前的溫度、天氣狀況或其他資訊。
不過這些資料並不是只有 App 或網站自己可以使用,
開發者也可以透過 API 向天氣服務取得資料。

例如,我們可以提出類似這樣的請求:
「我想知道某個地點現在的天氣。」
API 收到 Request 後,就會回傳相關的天氣資料。

這和前面使用書籍 API、電影 API 的概念其實很像,
只是這次取得的資料從「書籍」或「節目」變成了「天氣」。

⸻

*三、今天要觀察哪些資料?

今天第一次使用天氣 API,
主要想先確認它到底會回傳哪些資料。

可以觀察:

  • 查詢的地點
  • 目前的天氣狀況
  • 溫度
  • 體感溫度
  • 濕度
  • 風速
  • 其他相關天氣資訊

這次不會一開始就把所有欄位全部研究完,
而是先看看 API 實際回傳的內容,
建立對天氣 API 的基本認識。

⸻

四、查詢天氣 API

這次使用的是 Open-Meteo 提供的公開天氣 API。
Open-Meteo 不需要另外申請 API Key,
就可以直接進行測試,因此很適合拿來做這次的練習。

首先打開手機瀏覽器,輸入以下網址:
https://api.open-meteo.com/v1/forecast?latitude=25.03&longitude=121.56&current=temperature_2m,relative_humidity_2m,wind_speed_10m
這個網址是在查詢台北地區的目前天氣資料。

打開後,可以看到 API 回傳的 JSON 資料。
https://ithelp.ithome.com.tw/upload/images/20261009/2017890130qx4dwUdR.jpg
可以先找到幾個比較容易理解的部分,例如:
{
"latitude": 25.03,
"longitude": 121.56,
"current": {
"temperature_2m": 30.5,
"relative_humidity_2m": 70,
"wind_speed_10m": 8.2
}
}
實際數值會隨著查詢時間不同而改變,
所以不一定會和上面的數字完全一樣。

從這個結果可以先看到,
API 不只是回傳一個溫度,而是把地點、
目前天氣資料等資訊一起放在 JSON 裡面。

⸻

五、第一次使用天氣 API 的心得

可以注意到,
這次的天氣API和前面的書籍跟電影最大的區別是,
這次的 JSON 裡面出現了 current,
而 current 裡面又放了溫度、濕度和風速等資料。

這也讓我再次看到 JSON 的巢狀結構。
前面 Day 17 已經看過電影 API 裡面的 Object 和 Array,
而這次的天氣 API 也有類似的結構,只是裡面的資料內容不同。

可以發現雖然不同 API 提供的資料完全不一樣,
但閱讀 JSON 的方法還是可以沿用前面學到的方式。

⸻

六、總結

今天是天氣 API 的第一天,
主要先認識什麼是天氣 API,
以及第一次實際向 Open-Meteo 發送請求。

這次查詢到的資料包含地點座標,
以及目前的溫度、濕度和風速等資訊。

目前還沒有深入分析每個欄位的意思,
下一步會繼續實際修改查詢條件,
看看當查詢的地點改變時,
API 回傳的資料會不會跟著改變。

這樣也可以把前面學到的「Parameter 會影響 API 回傳結果」再次實際操作一次。


上一篇
Day 19|電影 API 總結
下一篇
Day 21|使用天氣 API 查詢不同地點
系列文
Web API:從零開始探索公開 API 與資料應用 共 29 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言