Web APIとREST APIをピザの電話注文に例えて解説します!

その他

APIの仕組みってなんだか難しそう…」。

そんなあなたのために、Web APIとREST APIを「ピザの電話注文」に例えてわかりやすく解説します!

注文の流れ=データのやり取り」をイメージすれば、APIの概念がスッと頭に入るはず!

APIがわかれば、自分で作るアプリに取り込むことも可能です。

Web APIREST APIについて、楽しく学んでいきましょう!

Web APIの基本を図解でわかりやすく説明しているYoutubeサイトです。前半で知識を学び、後半では実際にAPIを作る過程を紹介しています。

このブログ記事では、APIの活用事例メリット・デメリットについて詳しく解説しています。特にWeb APIに焦点を当てており、初心者の方にも理解しやすい内容です。

スポンサーリンク

Web APIとは?

Web API(Web Application Programming Interface)とは、異なるシステムやアプリケーションがインターネットを介してデータをやり取りするための「窓口」です。

Web APIとは

この機能を使うことで、自分のコンピューターやアプリ他のアプリケーションの機能を追加したりすることができます。

Web APIをピザ屋の電話注文に置き換えると?

Web APIをピザ屋の電話注文に置き換えると、次のようになります。

ピザを食べたいのですが自分で作るのは大変なのでピザを作ってもらおうと思ってます。

Web APIとは1
  • あなた:「ピザを1枚ください!」
  • ピザ屋受付:「注文来たよ」(とピザ屋の職人に伝える)
  • ピザ屋:「OK。了解」(とピザ屋職人がピザ屋受付に伝える)
  • ピザ屋受付:「かしこまりました。30分以内にお届けします。」

このように、あなた(クライアント)とピザ屋(サーバー)は電話を使い「ピザ屋受付」を介して注文のやり取りをしています。これがWeb APIの概略です。

ただここでのやり取りは大雑把なので、他の店では通用しない可能性があります。

そこでREST APIというものが出てきます。

REST APIとは?

REST APIは、Web APIの中でも特定のルール(REST: Representational State Transfer)に従ってデータをやり取りするAPIのことです。シンプルで統一された方法で情報をやり取りできるため、多くのWebサービスで採用されています。

REST APIの特徴は以下になります。

  1. リソース指向:データは「リソース」として扱われ、特定のURL(エンドポイント)でアクセス可能。
  2. HTTPメソッドの活用:GET、POST、PUT、DELETEなどのHTTPメソッドを使用。
  3. ステートレス(Stateless):各リクエストは独立しており、前回のリクエスト状態をサーバーが保持しない。

REST APIをピザ屋の注文に例えると?

REST APIでは、統一されたリソースのアドレス(エンドポイント)に対して、決められたメソッドを使って操作を行います。

ピザ屋の電話注文に置き換えると以下のようになります。

REST APIとは
  • あなた:行動:注文します 情報:会員情報は・・・ 言語は・・・ 詳細:マルゲリータ
  • ピザ屋受付:返答:注文受付けました 情報:日時は・・・ 詳細:マルゲリータ、30分後・・・

このように決まった方式でやり取りするのがREST APIになります。

多くのWeb APIはこのREST APIに沿った形式になっています。

次からはこのピザ屋を例として書き方について学んでいきます。

REST APIのメソッドとステータスコード

REST APIのメソッド(ピザ屋での注文行動)

REST APIのメソッドは、クライアントがサーバーに対してどのような操作を行うかを決めるものです。

ピザ屋の電話注文に例えると、注文を確認したり、新しく注文を行ったり、注文内容を変更したり、注文をキャンセルしたりする行動に相当します。

REST APIのメソッド
  • GET:メニュー教えてください(相手の持っている情報をもらう)
  • POST:マルゲリータSサイズ1枚お願いします(相手に情報を渡す)
  • PUT/PATCH:やっぱりLサイズで、アンチョビ追加で
  • DELETE:注文キャンセルします

これをテーブルでまとめると以下のようになります。

メソッド役割ピザ屋での例
GET情報の取得「どんなピザがありますか?」
POST新しい注文の作成「マルゲリータ S サイズ 1 枚お願いします。」
PUT/PATCH既存注文の変更「やっぱり L サイズでアンチョビ追加で!」
DELETE注文のキャンセル「注文をキャンセルします。」

注文の仕方が固定されているのが特徴です。

REST APIでのステータスコード(ピザ屋からの返答行動)

サーバーはクライアントからのリクエストに対して適切なステータスコードを返します。

これは、ピザ屋が電話注文に対して「受け付けました」「その注文はありません」「システムに問題が発生しています」などと返答するのと同じです。

ピザ屋の電話注文に置き換えると以下のようになります。

REST APIのステータスコード

以下に、ステータスコードの例を示します。

  • 成功:200番台
    OK。受付けました(200 OK)
    注文作成しました(201 Created)
  • クライアント(あなた)エラー:400番台
    サイズ指定方法が無効です(400 Bad Request)
    会員情報が間違ってます(401 UnAuthorized)
    あなたに権限はないです(403 Forbidden)
    注文が見つかりません(404 Not Found)
  • サーバー(ピザ屋)エラー:500番台
    ピザ屋のキャパオーバーです(500 Internal Server Error)
    今日は定休日です(501 Service Unavailable)

テーブルでまとめると以下のようになります。

状況ステータスコード状態ピザ屋での例
成功200 OK成功「注文を受け付けました!」
201 Created注文作成成功「注文を作成しました!」
クライアントエラー400 Bad Requestリクエストエラー「サイズの指定方法が無効です。」
401 Unauthorized認証エラー「会員情報が間違っています。」
403 Forbiddenアクセス権なし「あなたに権限はありません。」
404 Not Foundリソースなし「注文が見つかりません。」
サーバーエラー500 Internal Server Errorサーバーエラー「ピザ屋のキャパオーバーです。」
503 Service Unavailable一時的な障害「今日は定休日です。」

返答の仕方も固定されているのが特徴です。

REST APIの要素

REST APIは、メソッドとステータスコード以外にもいろいろな要素があります。

それぞれの要素について詳しく説明します。

リクエスト側(ピザ屋での電話注文)

リクエスト側はメソッド以外にも、ヘッダーリクエストボディというものが存在します。

これはピザ屋の電話注文に例えると「情報」、「詳細」に当たります。

図にすると以下のようになります。

REST APIのリクエスト
  • 行動(HTTPメソッド)
    HTTPメソッドは、リクエストの種類を示します。
    GET, POST, PUT, PUTCH, DELETE
  • 情報(ヘッダー)
    ヘッダーは、リクエストに関する追加情報を伝えます。
    店舗情報:HOST
    話す言語:Content-Type
    会員情報:Authorization
  • 詳細(リクエストボディ)
    リクエストボディには、実際の注文内容や変更内容が含まれます。
    注文者の名前:customer_name
    ピザの種類:item
    サイズ:size
    配送先:delivery_adress

このようにリクエストでは注文の要素が決まっています。

レスポンス側(ピザ屋での電話返答)

レスポンスにおいてもステータスコード以外に、ヘッダーレスポンスボディが存在します。

これもピザ屋の電話注文に例えると「情報」、「詳細」に当たります。

図にすると以下のようになります。

REST APIのレスポンス
  • 返答(ステータスコード)
    ステータスコードは、リクエストの成功・失敗を示す数値です。
    OK(200)
    あなたの問題(400)
    ピザ屋の問題(500)
  • 情報(ヘッダー)
    ヘッダーは、レスポンスの追加情報を伝えます。
    話す言語:Content-Type
    日時:Date
  • 詳細(レスポンスボディ)
    レスポンスボディには、実際の注文情報エラーメッセージが含まれます。
    注文番号:order_id
    ピザの種類:item
    ピザのサイズ:size
    配送時間:estimated_time

このようにレスポンスでも返答の要素が決まっています。

まとめ

Web APIは、インターネットを介してデータをやり取りする「窓口」のようなもの。

REST APIは、その中でも統一されたルール(REST)で情報をやり取りするAPIです。

ピザ屋の電話注文の例を用いることで、REST API の仕組みを直感的に理解することができます。

APIを理解できると自分で作るアプリに組み込むことができます。

さらに生成AIのAPIと組み合わせることで無限大の可能性が広がります。

私の書いている書籍なども参考ください。

コメント

タイトルとURLをコピーしました