【Lv.5】天気APIダッシュボードを作る ── 外部データを取得して表示するアプリ
この記事で作るもの
天気情報ダッシュボード。外部APIからリアルタイムデータを取得して、見やすく表示する。
完成する機能:
- 都市名を入力すると天気情報を表示
- 気温、天気、湿度、風速
- 天気に応じたアイコン表示
- 5日間の予報
所要時間: 約1〜2時間
なぜこれを作るのか
ここまでのプロジェクト(HTML、ToDo、ポートフォリオ、ブログ)は全てローカルで完結していた。このプロジェクトでは初めて外部のデータを取得して使う。
これができると:
- ニュースアプリ
- 株価トラッカー
- SNSダッシュボード
など、リアルタイムデータを扱うアプリが作れるようになる。
全体の流れ
Step 1
APIキーを取得
OpenWeatherMapで無料アカウント作成
約5分 Step 2
基本のHTML作成
入力欄と表示エリアのレイアウト
約15分 Step 3
API連携
JavaScriptでAPIを呼び出してデータ取得
約30分 Step 4
デザイン改善
天気アイコン、カード表示、レスポンシブ
約30分 Step 5
5日間予報を追加
追加APIで週間予報を表示
約30分Step 1: APIキーを取得
- OpenWeatherMap にアクセス
- 無料アカウントを作成
- API keysページでキーを取得
ℹ️
無料枠で十分
無料プランで1分間60リクエスト、月100万リクエストまで。個人利用では使い切れない量。
Step 2: AIに指示を出す
天気ダッシュボードをHTML + JavaScript(1ファイル)で作ってください。
機能:
- テキスト入力欄に都市名を入力してEnterまたはボタンで検索
- OpenWeatherMap APIで現在の天気を取得
- 気温(℃)、天気の説明、湿度(%)、風速(m/s)を表示
- 天気に応じたアイコン(OpenWeatherMapのアイコンURL)を表示
APIキー: [ここにキーを入れる]
エンドポイント: https://api.openweathermap.org/data/2.5/weather?q={city}&appid={key}&units=metric&lang=ja
デザイン:
- ダークモード(背景 #0f172a)
- カード形式で中央に表示
- グラデーションの背景
- レスポンシブ対応
Step 3: 動かして改良
動いたら追加の指示:
5日間の天気予報も表示してください。
エンドポイント: https://api.openweathermap.org/data/2.5/forecast?q={city}&appid={key}&units=metric&lang=ja
横スクロールのカード形式で日ごとに表示。
検索履歴を保存して、最近検索した都市を
ボタンで選べるようにしてください。
localStorageで保存。
学べること
| 概念 | このプロジェクトでの実例 |
|---|---|
| API呼び出し | fetch()でHTTPリクエスト |
| 非同期処理 | async/awaitでデータ待ち |
| JSONパース | APIレスポンスの解析 |
| エラーハンドリング | 都市が見つからない場合の処理 |
| 動的表示 | 取得データをHTMLに反映 |
💡
APIの世界は無限
天気の次は、ニュース(NewsAPI)、為替(ExchangeRate API)、GitHub(GitHub API)など、無料で使えるAPIは山ほどある。このプロジェクトでAPI連携の基本を掴めば、何でも作れる。