APIの活用
プログラミング基礎編の最後に、少し応用的ですが非常に強力な概念**「API(エーピーアイ)」**について学びましょう。
「API(Application Programming Interface)」という言葉だけ聞くと、難しそうに感じるかもしれません。でも、その役割は身近なものに例えると、とても分かりやすくなります。
APIを一番うまく説明できる例え
このとき、皆さまは厨房の中に入って、料理人に直接「肉をこねて、焼いてください」とは言いませんよね。
メニューを見て、ウェイターさんに「ハンバーグを一つお願いします」と注文するだけのはずです。
厨房(システム)に伝え、結果(レスポンス)を返してくれる窓口」
書き方と具体例
郵便番号API、天気API、ポケモンAPIとのやり取りは、すべて
helpers() という、この教材で特別に用意された「便利な道具箱」の中に整理されています。
この道具箱から目的の道具を取り出して、お願いごとを伝えるだけで、APIを簡単に利用できます。
基本的な使い方
await helpers().[道具の名前].api.[お願いごと]("伝えたい情報")
具体例
// 郵便番号API:郵便番号 "1008606" の住所を取得する
const address = await helpers().zipcode.api.getAddress("1008606");
// ポケモンAPI:ポケモン名 "pikachu" の詳細情報を取得する
const pokemon = await helpers().pokemon.api.getPokemonDetails("pikachu");
私たちは、それぞれの「専用窓口」に、決められた情報を渡すだけで、欲しい結果を受け取ることができるのです。
体験できるAPIの紹介
APIは、企業から個人の開発者まで、世界中の人々が便利な機能を無料で公開・提供しています。
この教材では、その中から3種類のAPIを、簡単な命令で呼び出せるように用意してあります。APIは非常に便利で面白いものなので是非遊んでみてください。
📮 郵便番号API(提供:日本郵便)
郵便番号を渡すと、対応する住所(都道府県や市区町村など)を返してくれます。日本の公的機関が提供している、非常に信頼性の高いAPIの代表例です。
// 郵便番号API:郵便番号 "1008606" の住所を取得する
const address = await helpers().zipcode.api.getAddress("1008606");
console.log("郵便番号から取得した住所:", address);
☀️ 天気予報API(提供:気象庁)
各地域の都市コードを渡すと、最新の天気予報を取得できます。日々のニュースなどでも利用されている、公式データにアクセスできる便利なAPIです。
// 天気API:都市コード "130010" (東京) の天気予報を取得する
const weather = await helpers().weather.api.getWeather("130010");
console.log("東京の天気:", weather);
👾 ポケモンAPI(提供:コミュニティ有志)
APIは企業や公的機関だけのものではありません。世界中のファンや開発者が、楽しみながら作ったユニークなAPIをたくさん公開しています。
その代表例として、ポケモンの名前(英語)を渡すと、その詳細データを返してくれるAPIを試してみましょう。
// ポケモンAPI:ポケモン名 "pikachu" の詳細情報を取得する
const pokemon = await helpers().pokemon.api.getPokemonDetails("pikachu");
console.log("ピカチュウの情報:", pokemon);
自動テストでの使い方
自動テストにおいて、APIは主にテストデータの準備(作成)や後片付けを、高速かつ安定的に行うための「秘密兵器」として使われます。
例えば、「ログイン機能」をテストするために、まず「テスト用ユーザー」を1人作成する場合を比べてみましょう。
ページの表示を待つため遅く、デザイン変更で壊れやすいのが欠点です。
画面を介さないため一瞬で終わり、見た目の変更にも影響されません。
テストの準備は、この裏口を使った方が圧倒的に効率的で、信頼性の高いテストを実現できます。
やってみよう
「API」が、実際にどのようにデータを返してくれるのかを体験してみましょう。
用意された3つのAPI(郵便番号、天気、ポケモン)に、様々な「注文(リクエスト)」を送り、返ってくる「料理(レスポンス)」がどう変わるのかを観察します。
演習ファイル
tests/document-4/lesson-05.spec.ts
手順動画
進め方
-
演習ファイルを開き、まずは何も変更せずにテストを実行してください。3つのAPIから、それぞれどんな情報が返ってくるか、コンソールの
console.logの結果を確認しましょう -
次に、コードの中の引数(
getAddress("...")やgetPokemonDetails("...")の"..."部分)を、好きな値に変えてみましょう- 郵便番号API: 自宅や会社の郵便番号を入れてみましょう
- ポケモンAPI: "pikachu"を"eevee"や"snorlax"など、他のポケモンの名前に変えてみましょう(※英語で入力)
-
再度テストを実行し、コンソールに表示される結果がどのように変わったかを確認してください
APIのパラメータの種類
ちなみに、今回は「この料理を見せてください」という**GET(取得)**の注文をしましたが、他にも様々なお願いの仕方があります。
このタブで覚えておいてほしいこと
実際の現場に入ると「その処理はAPIでやって!」と指示されることがあるかもしれません。
そんなときに「API?なんだか怖い…」ではなく、
「会社がデータ登録を楽にするためにAPIを用意してくれてるんだ!ラッキー!」
と前向きに思えるようになってほしく、このAPIを紹介しました。