ポータルへ戻る08 / API BASICS

CONNECT / REQUEST / RESPONSE

APIのしくみを、
体験しよう。

ボタンを押す。データが届く。
その裏側をのぞくと、Webのつながり方が見えてくる。

カラフルなサーバーと接続パーツの3Dイラスト

01 / APIとは

APIとは、
Application Programming Interfaceです。

名前を三つの言葉に分けると、役割が見えてきます。

APPLICATION

Application

アプリ:目的に応じた道具

PROGRAMMING

Programming

プログラム・機能やデータ

INTERFACE

Interface

間に置かれるもの・窓口

つまり、プログラムのデータや機能をやり取りする窓口です。

ここではインターネット上にある窓口へアクセスして、機能やデータを使えるようにするWeb APIを学びます。

02 / APIを体感

~ APIを体感してみよう ~
ボタンを押したらデータが届く

FORTUNE / API MOCKUP

誕生月のおたよりを、
JSONから受け取る。

誕生月を選ぶと、fortune.jsonから受け取った60件のデータの中から、画像とひとことを1件表示します。

01 / REQUEST

GET fortune-mock/fortune.json

JSONを読み込んでいます…

学習用の架空のおたよりです。誕生月は保存しません。
02 / RESPONSEYOUR LETTER
おたよりを届けるマスコット

どんなおたよりが届くかな?

月を選んで、「おたよりを受け取る」を押してみましょう。

12 MONTHS × 5 LETTERS

RESPONSE JSON

画面に表示する文章と画像の情報は、同じデータから取り出します。

fortune.jsonを直接開く ↗
まだおたよりを受け取っていません。

03 / JSONで中身を見る

届いたのは、
完成した画面ではなくデータ。

JSONは、名前と値を組にしてデータを表す書き方です。FORTUNE / API MOCKUPでは、"month"が選んだ月、"message"が文章、"image"が表示する画像の場所を表します。JSONそのものはプログラムではありません。

  1. 上の体験で誕生月を選び、おたよりを受け取る。
  2. 表示されたカードと、下に表示されるJSONを見比べる。
  3. fortune.jsonを直接開き、60件の元データを見る。
ブラウザでfortune.jsonを開く ↗

新しいタブでJSONそのものを確認できます。画面のデザインと、データの中身は別の役割です。

{
  "month": 5,
  "id": "05-01",
  "message": "がんばる日と休む日、どちらも大切にすると調子が整いそうです。",
  "image": "images/fortune-05-01.png",
  "alt": "ラベンダー色のクッションを抱くマスコット"
}
month 選んだ月message 表示する文章image 表示する画像alt 画像の説明

このページではfortune.jsonを取得しています。Node.jsでサーバーを起動する次の章では、同じようなJSONを「窓口」に応じて返す方法を見ます。

04 / サーバーの役割

「ローカル」と「サーバーなし」は、
同じ意味ではない。

Web APIのお願いを受け付けるのは、サーバーとして動くプログラムです。そのプログラムは、自分のPCでも、遠くのコンピューターでも動かせます。

FILE / サーバーなし

ファイルを直接開く

file:///…/index.html

保存されたHTMLを読む状態。自作APIへのリクエストを受け付けるプログラムは、まだ動いていません。

ローカルのHTMLから外部APIを呼べることもあります。外部サーバーは存在し、接続の可否はAPIやブラウザの制限によります。
LOCAL / サーバーあり

自分のPCで起動する

http://localhost:3000/api/hello

Node.jsでサーバーを立ち上げると、自分のPCがお願いを受け付けます。localhostは、いま操作している端末自身です。

スマホでlocalhostを開いても、PCにはつながりません。まずPC上で試します。
REMOTE / サーバーあり

公開先で動かす

https://example.com/api/hello

インターネット上の公開先でサーバーを動かすと、許可された利用者が別の端末から接続できます。

このURLは説明用です。公開には配置・HTTPS・必要な認証などの設定が加わります。

APIは必ずNode.jsやJSONで作るものではありません。今回は、サーバーの役割が見えやすいNode.jsとJSONの組み合わせを使います。

05 / APIを作る実際

使うのは1クリック。
作るには、準備がいる。

まずは制作の流れを見てください。今、すべてを理解したりインストールしたりする必要はありません。「考えることがいくつもある」と感じられれば、この段階の目的は達成です。

  1. 01

    Node.jsをインストール

    Node.jsはブラウザの外でJavaScriptを動かす実行環境。公式サイトでOSに合うLTS版を選びます。Windowsならインストーラーを使い、完了後にターミナルを開き直して確認します。

    Node.js公式ダウンロード ↗
    node --version
    数字のバージョンが表示されれば確認完了。インストール時にOSの確認が出る場合があります。サンプルの起動自体に管理者権限は必要ありません。
  2. 02

    窓口と、返すJSONを書く

    作業フォルダにserver.jsを保存します。下のサンプルはNode.jsの標準機能だけで動き、追加ライブラリの導入は不要です。

    動くサンプルをダウンロード
    const http = require('node:http');
    
    const server = http.createServer((req, res) => {
      res.setHeader('Content-Type', 'application/json; charset=utf-8');
      if (req.method === 'GET' && req.url === '/api/hello') {
        res.end(JSON.stringify({ message: 'こんにちは、API!' }));
        return;
      }
      res.statusCode = 404;
      res.end(JSON.stringify({ error: '窓口が見つかりません' }));
    });
    
    server.listen(3000, '127.0.0.1', () => {
      console.log('http://localhost:3000/api/hello');
    });

    URLで処理を分ける、データをJSONにする、見つからない窓口に404を返す。「ただ文字を表示する」までにも、ルールを決めます。

  3. 03

    サーバーを立てる

    server.jsを保存したフォルダでターミナルを開き、次を実行します。

    node server.js

    URLが表示されたら起動中です。ターミナルは開いたままにします。終了はCtrl + C。3000番ポートが使用中なら、競合を解消するか別の番号に変更します。

  4. 04

    エンドポイントに接続する

    同じPCのブラウザのアドレス欄に、次を貼り付けます。

    http://localhost:3000/api/hello

    返ってくるJSON:

    { "message": "こんにちは、API!" }
    サーバーを止めれば接続できなくなります。ファイルが存在するだけでは、APIは応答しません。この例は自分のPCだけで接続できる設定で、インターネットへは公開しません。

「これは難しい」と感じて大丈夫。

実行環境、コード、起動、URL、エラー対応。初めてなら知らないことが続きます。まず覚えたいのは、「サーバーを起動して、窓口へお願いすると、データが返る」という関係です。

06 / AIと一緒に作る

手順とコードは、
AIと一緒に進められる。

AIエージェントは、APIのコード作成や起動の確認、エラーの原因調べを支援できます。あなたは何を渡して、何を受け取りたいかを決める。作業を小さく区切れば、全部を一度に理解する必要はありません。

まずは、これを依頼してみよう。

利用するAIの権限や環境によって、実行できる作業は変わります。コードができたら実際に接続し、期待するJSONが返るか確認します。

インストールや公開など環境を変える作業は、内容を説明してもらってから進めましょう。APIキーやパスワードは、この練習に必要ありません。

ステップロック方式で一段ずつ進める →
Node.jsで、ローカルだけで動く小さなWeb APIを作りたいです。
私はプログラミング初心者です。一段ずつ進めてください。

## 目的
ブラウザから接続し、JSONが返るしくみを理解する。
## 必須内容
GET /api/hello に接続すると、
{"message":"こんにちは、API!"} を返す。
存在しない窓口には404とJSONのエラーを返す。
## 避けたいこと
外部への公開、課金、APIキー、追加ライブラリ。
インストール前には作業内容を説明する。
## 完成の基準
自分のPCで起動し、実際のJSONをブラウザで確認できる。
起動・停止方法と、各手順の意味を説明する。

まずNode.jsが利用できるか確認するところから始めてください。

次は、Googleサービスをつなぐ。

09では、スプレッドシートからGoogleカレンダーへ。今回学んだ「お願いを送る・データが返る」を、身近なサービスの連携へつなげます。

09の教材は準備中です。
紙飛行機がおたよりをメールボックスへ届けるアニメーション

おたよりを配達しています…

APIづくりの練習

学習用の再現です。実際のインストール、ファイル作成、サーバー起動、通信は行いません。

1 / 4

SIMULATOR

          
          

赤枠のボタンを押してください