「Web API」と「JSON」。この二つの言葉を聞いた時、あなたはどんな感情を抱きますか?
「また新しい専門用語か…」「難しそう…」「自分には関係ないかも…」
私もそうでした。プログラミング学習の初期、Webサービスを作りたいと意気込んでいたのに、APIの壁にぶち当たったんです。
「外部のデータを取ってくる? どうやって? 天気予報とか、地図情報とか、どうやってWebサイトに表示されてるんだ?」
疑問は尽きず、参考書を読んでも頭の中は霧がかかったよう。「リクエスト」「レスポンス」「エンドポイント」「GETメソッド」…カタカナ語の羅列に、もうダメかもしれない…と何度も思いました。
特にJSONの構造を見たときは、「これは一体、宇宙語か?」と本気で焦燥感を覚えましたね。{}や[]、””で囲まれたデータが延々と続くのを見て、一体どこから手をつけていいのか、全く見当もつかなかったんです。
そんなある日、私は「天気予報を自動で表示するプログラム」を作ってみようと思い立ちました。
「これができれば、自分のWebサイトももっと便利になるはずだ!」
そう意気込んで、有名な無料の天気予報API「OpenWeatherMap」を使ってみることにしたんです。
最初はやはり、APIのドキュメントを読んでもチンプンカンプン。「APIキー?」「緯度経度?」と、呪文のように感じる用語に頭を抱えました。
しかし、「とにかくやってみよう!」と、見よう見まねでPythonのrequestsライブラリを使ってAPIにアクセスするコードを書いてみました。
response = requests.get(api_url)
そして、受け取ったデータが…まさしくあの「宇宙語」のようなJSONデータでした。
print(response.json())
画面に表示されたのは、こんな感じの膨大なデータ。
“`json
{“coord”:{“lon”:139.6917,”lat”:35.6895},”weather”:[{“id”:800,”main”:”Clear”,”description”:”clear sky”,”icon”:”01d”}],”base”:”stations”,”main”:{“temp”:28.0,”feels_like”:27.5,”temp_min”:26.0,”temp_max”:30.0,”pressure”:1012,”humidity”:60},”visibility”:10000,”wind”:{“speed”:3.09,”deg”:240},”clouds”:{“all”:0},”dt”:1678886400,”sys”:{“type”:2,”id”:2019346,”country”:”JP”,”sunrise”:1678857600,”sunset”:1678899600},”timezone”:32400,”id”:1850144,”name”:”Tokyo”,”cod”:200}
“`
「うわぁ…やっぱり無理だ…」
その瞬間、心が折れそうになりました。「このままじゃ、いつまで経っても自分の作りたいものが作れない。家族に、『すごいね!』って言ってもらえるようなものも作れない…」と、孤独感と後悔に苛まれました。
でも、ふと冷静になって、JSONデータの中をじっと見てみたんです。
「あれ? nameの横にTokyoってあるぞ…」「tempの横に28.0って書いてある…これって、東京の気温じゃないか?」
そう思った瞬間、脳みそに電撃が走ったような感覚でした。
今までバラバラだった記号の羅列が、急に「意味のある情報」として見え始めたんです。
"main": {"temp": 28.0, ...}
これは、「主要な情報」の中に「温度」が「28.0度」である、と読み解ける!
まるで、外国語の単語が突然理解できたような、あの「なるほど!」という閃きでした。
Web APIは、まさにこの「知りたい情報」を、Webの向こう側のサーバーに「ください!」とお願いする窓口です。そして、サーバーはそのお願いに対して、構造化されたデータ、つまりJSON形式で「どうぞ!」と返してくれる。
JSONは、JavaScriptのオブジェクトの書き方をベースにした、人間にもコンピューターにも分かりやすいデータ形式です。
{}(オブジェクト)は「辞書」や「箱」、[](配列)は「リスト」や「並んだ箱」だと思えば、一気に親しみが湧きませんか?
先ほどの天気予報のJSONも、よく見れば「東京の天気」という大きな箱の中に、「座標」「天気情報」「気温情報」といった小さな箱がきちんと整理されて入っているだけなんです。
そして、私たちはその箱の中から、必要な情報(例えば「今日の気温」)だけをピンポイントで取り出すことができる。これが「JSONデータの解析」です。
この仕組みを理解すると、今まで「ブラックボックス」だったWebの裏側が、まるで透明なガラス窓の向こう側のように、クリアに見えてくるはずです。
Web APIとJSONは、現代のWeb開発において、もはや呼吸と同じくらい当たり前の存在です。これらを理解することは、あなたがWebの世界で実現したいあらゆるアイデアへの「魔法の扉」を開く鍵となります。
あの難解な呪文が、一瞬で「意味のあるデータ」に変わる瞬間を、ぜひあなたも体験してください。
天気予報APIは、その最初の一歩に最適なツールです。ぜひ、実際に手を動かして、あなた自身の目で「意味不明」が「なるほど!」に変わる瞬間を確かめてみてください。
きっと、Web開発の新しい世界が目の前に広がるはずです。
