【授業レポート】システム開発入門 第22週目 〜外部API連携入門:HTTPとJSONを学ぼう〜
今週は、先週の予告どおり**「外部API(外部サービス)との連携の基礎」**に挑戦しました。外のサービスと“会話”するための仕組み(HTTP・エンドポイント・JSONなど)を学び、簡単なサンプルを実際に組んでみる回です。
■ 先生の導入:「APIはサービス同士の約束事(プロトコル)」
田中先生:「APIは“読み書きのルール”です。正しい約束(リクエストの送り方)を守れば、別のサービスからデータをもらったり、機能を借りたりできます。」
黒板には、ブラウザでURLを叩く→サーバーがJSONを返す、という流れが図示され、生徒たちは「サービス同士が会話してるイメージ」が掴めた様子でした。
■ 今日のポイント:HTTPの基本・JSON・APIキー・ステータスコード
授業ではまず基礎用語を短く整理しました。
- HTTP(GET/POST):サーバーに「情報ちょうだい(GET)」や「情報送る(POST)」と頼む方法。
- エンドポイント:APIにアクセスするURL(窓口)。
- JSON:データのやり取りでよく使われる「鍵と値」の形をしたフォーマット。
- ステータスコード:200(成功)/404(見つからない)/401(認証エラー)など、レスポンスの結果を示す数字。
- APIキー/認証:サービスによっては鍵(APIキー)がないと使えない。鍵は大事に管理する。
生徒A:「ステータスコードってエラーの種類を表してるんだ!」
生徒B:「APIキーはパスワードみたいに扱うんですね」
■ 実習:Pythonで簡単なAPI呼び出し(疑似例)
実習では、外部サービスにGETリクエストを送り、返ってきたJSONを解析して表示する流れを学びました。以下は教室で扱った簡単な例(学習用の疑似コード)です。
import requests # 学習環境でrequestsが使える前提
import json
url = "https://api.example.com/weather"
params = {"q": "Tokyo", "appid": "YOUR_API_KEY"} # YOUR_API_KEY は自分の鍵に置き換え
response = requests.get(url, params=params)
if response.status_code == 200:
data = response.json() # JSONをPythonの辞書に変換
temp = data["main"]["temp"]
description = data["weather"][0]["description"]
print(f"現在の気温:{temp}℃、天気:{description}")
else:
print(f"エラーが発生しました:{response.status_code}")
先生は「実際のAPIを触るときはドキュメントをよく読んで、使い方(パラメータ・認証・レート制限)を確認してね」と注意点を補足しました。
■ ハンズオン課題:身近なAPIを“読む”・“使う”練習
生徒たちは以下の課題に取り組みました(学校のネットワークポリシーに従って、実際のAPIを叩ける環境で実施)。
- APIドキュメントを1つ選び、エンドポイントと必要なパラメータをメモする。
requests.get()
を使って実際にデータを取得(できる範囲で)。- 取得したJSONから必要な情報を抽出して表示する(例:天気、為替レート、ランダム名言など)。
- 取得に失敗した場合のエラーハンドリング(ステータスコードに応じた表示)を実装する。
生徒C:「ドキュメント読むの難しいけど、理解できたら楽しい!」
生徒D:「JSONの階層を追うのがちょっと骨だけど、データが見えると嬉しい」
■ セキュリティとマナーのミニ講義
授業の終わりに、API利用時の注意点も確認しました。
- APIキーを公開リポジトリに絶対置かない(秘密情報は
.env
等で管理) - レート制限(一定時間に叩ける回数)を守る
- 利用規約を尊重する(商用利用や二次配布の可否)
田中先生は「便利な反面、ルールを守らないと迷惑や損害につながる」と強調しました。
■ 先生のひとこと
「外部APIを使えるようになると、天気・地図・翻訳など、世界中のデータやサービスを自分のアプリに組み込めます。でも“使う責任”も伴います。まずは小さなAPIで練習して、ルールを守って使えるようになってください。」
■ 来週の予告:簡単なAPI連携ミニプロジェクト
次週は、今回学んだことを活かして小さなAPI連携プロジェクト(例:天気を取得して結果を表示するミニアプリ)を作ります。設計 → 実装 → エラーハンドリングまで一通り体験する予定です。
外の世界と“つながる”楽しさを実感した22週目。1年生たちは、次の実践でさらに理解を深めていきます。