teacher asking a question to the class
Photo by Max Fischer on Pexels.com

【授業レポート】システム開発入門 第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を叩ける環境で実施)。

  1. APIドキュメントを1つ選び、エンドポイントと必要なパラメータをメモする。
  2. requests.get() を使って実際にデータを取得(できる範囲で)。
  3. 取得したJSONから必要な情報を抽出して表示する(例:天気、為替レート、ランダム名言など)。
  4. 取得に失敗した場合のエラーハンドリング(ステータスコードに応じた表示)を実装する。

生徒C:「ドキュメント読むの難しいけど、理解できたら楽しい!」
生徒D:「JSONの階層を追うのがちょっと骨だけど、データが見えると嬉しい」


■ セキュリティとマナーのミニ講義

授業の終わりに、API利用時の注意点も確認しました。

  • APIキーを公開リポジトリに絶対置かない(秘密情報は .env 等で管理)
  • レート制限(一定時間に叩ける回数)を守る
  • 利用規約を尊重する(商用利用や二次配布の可否)

田中先生は「便利な反面、ルールを守らないと迷惑や損害につながる」と強調しました。


■ 先生のひとこと

「外部APIを使えるようになると、天気・地図・翻訳など、世界中のデータやサービスを自分のアプリに組み込めます。でも“使う責任”も伴います。まずは小さなAPIで練習して、ルールを守って使えるようになってください。」


■ 来週の予告:簡単なAPI連携ミニプロジェクト

次週は、今回学んだことを活かして小さなAPI連携プロジェクト(例:天気を取得して結果を表示するミニアプリ)を作ります。設計 → 実装 → エラーハンドリングまで一通り体験する予定です。


外の世界と“つながる”楽しさを実感した22週目。1年生たちは、次の実践でさらに理解を深めていきます。

投稿者 greeden

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)