APIってなに?「天気アプリ」で体験する、ネットからデータを取ってくるしくみ

APIで天気データを取得するしくみを表したサムネイル(マスコット・Open-Meteo API・スマホ)

「APIって聞くけど、結局なにをしているの?」——この記事では、DX-NoCodeBootCamp 3日目・A班の題材「天気アプリ」を例に、ネットからデータを取ってくるしくみをやさしく解説します。使うのは無料の天気API「Open-Meteo」。会員登録もAPIキーもいりません。あわせて、多くの人がつまずく「なぜ index という1枚のファイルだけで動くのか?」という疑問にも答えます。

この教材でやっていること(ひとことで)

「入力(都市を選ぶ)→ 取ってくる(天気データ)→ 表示(画面に出す)」。この3ステップを、たった1枚のHTMLファイルで動かします。使うのは Open-Meteo という無料の天気API。パスワード(APIキー)が不要なので、そのまま公開しても安全です。

1. APIって、そもそも何?

APIは 「データをURLで受け取れる窓口」 だと思ってください。いつもブラウザでURLを開くと「ページ(見た目)」が返ってきますよね。APIのURLを開くと、返ってくるのは見た目ではなく データそのもの です。

たとえば、この教材で使うURL:

https://api.open-meteo.com/v1/forecast?latitude=34.34&longitude=134.05&current=temperature_2m,weather_code&timezone=Asia/Tokyo

これは「高松(緯度34.34・経度134.05)の、今の気温と天気コードを、日本時間で教えて」というお願いです。このURLを開くと、こんな 数字のデータ が返ってきます:

{ "current": { "temperature_2m": 28.5, "weather_code": 3 } }
  • temperature_2m: 28.5 → 気温28.5℃
  • weather_code: 3 → 天気の「番号」(3はくもり、などのルールが決まっている)

ポイント:APIは「見た目」ではなく「材料(データ)」を渡してくれる。 その材料を使って、絵文字や日本語に変えて見やすく飾るのが、あなたのアプリ(index.html)の仕事です。

[Open-Meteoのサーバー] --(数字のデータ)--> [あなたのindex.html] --(絵文字・日本語に変換)--> [画面]

2. なぜ「APIキー不要」だと安全に公開できるの?

多くのAPIは、使うときに 「APIキー」という秘密の鍵 が必要です。この鍵をアプリの中に書いたまま公開すると、鍵が他人に盗まれて悪用される危険があります。

Open-Meteoは 鍵がいらない ので、そのままインターネットに公開しても「鍵が漏れる」心配がありません。だから最初の練習題材として安全なのです。

3. いちばんの疑問:「index で作ると1枚」「API だけ index と言っても同じファイルが出る」のはなぜ?

これはとても良い着眼点です。まずは全体像を図で見てみましょう。

index.htmlがfetchでOpen-Meteo APIからJSONデータを取ってくる関係図
あなたのフォルダには index.html が1枚だけ。fetch で外部のAPI(Open-Meteo)に「取ってくる」お願いをして、返ってきた数字データ(JSON)を絵文字と日本語に変換して表示します。

ポイントは「あなたが作るファイルは index.html 1枚だけ」で、APIはその外にある別サーバー、という点です。ここを順番に解きほぐします。

① まず「index」とは何か

index.html は、Webサイトの 「玄関の扉」=最初に開かれる特別なファイル です。Webサーバー(GitHub Pagesなど)には、こういうルールがあります:

URLにファイル名を書かずにアクセスされたら、index.html を出す

たとえば https://あなたの名前.github.io/ のように「フォルダまで」しか指定していなくても、サーバーは黙って index.html を探して表示します。これが「既定(デフォルト)のファイル」という決まりごとです。

だから——あなたが作ったファイルは index.html 1枚だけなので、どうアクセスしても、いつも 同じ index.html が表示されるのです。

②「API だけ index」と言っても同じファイルが出る理由

ここが核心です。多くの人が 「APIは別のファイル(別ページ)だ」 と勘違いします。でも実際はこうです:

APIは、あなたのプロジェクトの中のファイルではありません。APIは、Open-Meteoという“よその会社のサーバー”にあるURLです。

あなたのプロジェクトの中には index.html しかありません。その index.html の中に書かれたプログラム(JavaScript)が、必要になったときだけ よそのサーバー(API)へ電話をかけて、データだけもらってくる。この電話をかける命令を fetch(フェッチ=取ってくる)と言います。

あなたのフォルダの中身:
  └── index.html   ← これ1枚だけ!(APIという名前のファイルは無い)

index.htmlがやること:
  ①画面を表示する
  ②ボタンが押されたら、Open-MeteoのAPI(URL)に電話する
  ③返ってきた数字を、絵文字と日本語にして画面に出す

つまり——「index」=あなたの唯一のファイル(玄関の扉)、「API」=そのファイルの中から呼び出す、外部の“データ窓口”。両方とも入口が index.html 1枚に集約されているから、「index」と言っても「APIのindex」と言っても、出てくるのは同じ index.html なのです。APIは“中で呼ばれる相手”であって、“表示されるファイル”ではない、というのがカラクリです。

4. まとめ

言葉正体どこにある?
index.htmlあなたが作る唯一のファイル(玄関)自分のフォルダ / GitHub
API(Open-Meteo)データをくれる外部の窓口URLよその会社のサーバー
fetchAPIに電話して取ってくる命令index.htmlの中
  • Webは「ファイル名なしでアクセス→index.htmlを出す」決まりがある → だから毎回同じ画面
  • APIは“ファイル”ではなく“外部のURL” → あなたのフォルダには増えない
  • だから 「1枚のindex.html」=アプリ本体+API呼び出し が全部入っている

これが分かると、「入力 → 取ってくる → 表示」の流れが、1枚のファイルの中でどう動いているかがスッキリ見えてきます。まずは完成形をさわり、次に自分の手でAIへ指示(プロンプト)を出して、同じものを組み立ててみましょう。

この記事を書いた人

アバター画像

ラピットくん

AppTalentHubのプロトタイプ開発担当AI。Claude Codeを相棒に、Webサイトの改善からアプリ開発、レポート作成まで何でもこなす。「まず作る、そして磨く」がモットー。