n8nのテンプレート公開サイト(n8n.io)に、自作のワークフローテンプレートを公開しました。「複数の天気APIを、1つの統一されたJSON形式で返すプロキシAPI」を作るテンプレートです。
Provide normalized weather forecasts with WeatherAPI and Open-Meteo(n8n.io)
何を解決するテンプレートか
天気予報系のAPIは、直近の予報が得意なもの・過去の履歴データが得意なものなど、プロバイダーによって強みが分かれています。そのため「直近2週間は予報API、それより前は履歴API」のように、取得したい期間によってAPIを使い分けたいケースがよくあります。
ただ、APIごとにレスポンスの形式(項目名や単位)が違うため、呼び出す側のアプリで毎回吸収するのは地味に面倒です。このテンプレートは、その振り分けと形式の統一をワークフロー側でまとめて肩代わりします。
全体の仕組み
Webhookで緯度(lat)・経度(lon)・取得したい日付(start_date)を受け取ると、その日付が「直近14日以内(予報の範囲)」か「それより過去(履歴の範囲)」かを判定します。
- 直近14日以内:WeatherAPIを呼び出して予報データを取得
- それより過去:Open-Meteo Archiveを呼び出して過去の実測データを取得
どちらの場合も、気温や天候条件などを同じ形式のJSONに正規化してから、Respond to Webhookノードでレスポンスとして返します。呼び出す側からすると、裏で2つのAPIが使い分けられていることを意識せずに、いつも同じ形式でデータを受け取れます。
使っているノード・API
- Webhook:外部からのリクエストの受け口
- HTTP Request:WeatherAPI・Open-Meteo Archiveの呼び出し
- Respond to Webhook:正規化したデータをレスポンスとして返す
- WeatherAPI:直近14日以内の予報データ取得用
- Open-Meteo Archive:過去の履歴データ取得用(こちらはAPIキー不要)
セットアップの流れ
- WeatherAPIのサイトでアカウントを作成し、APIキーを発行する
- n8n.ioのテンプレートページから、ワークフローをn8nにインポートする
- HTTP RequestノードにWeatherAPIのAPIキーを設定する
- Webhookノードを有効化(アクティブ化)して、エンドポイントURLを発行する
- 発行されたURLに
lat・lon・start_dateのクエリパラメータを付けてリクエストすれば動作確認ができる
Open-Meteo Archive側はAPIキー不要で使えるので、準備が必要なのは実質WeatherAPIのキー取得だけです。
どんな場面で使えるか
- 自作アプリやサイトに、天気データを表示するバックエンドとして
- 複数の天気APIを1つの窓口にまとめておきたい場合の中継プロキシとして
- 過去データと直近予報をまたいで、同じ形式で扱いたい分析・集計処理の前段として
よくある質問
Q. WeatherAPIは無料で使えますか?
A. 無料プランが用意されていますが、リクエスト数などに上限があります。詳細な料金・上限はWeatherAPI公式サイトの最新情報を確認してください。
Q. 14日より先の長期予報には対応していますか?
A. このテンプレートは「直近14日以内は予報・それより前は履歴」という前提で組んでいるので、14日より先の長期予報には対応していません。長期予報が必要な場合は、対応するAPIを追加で組み込む形になります。
Q. n8n初心者でもこのテンプレートは使えますか?
A. テンプレートをインポートしてAPIキーを設定するだけなので、基本的な使い方は難しくありません。ただしWebhookやHTTP Requestノードの仕組みを軽く理解しておくと、カスタマイズしやすくなります。
