Web APIの仕組みについてざっくり紹介

Web APIの仕組みについてざっくり紹介

Web APIってよく聞くけど、どういうもの?
こんな疑問にざっくりと答えていきます。

私は、現在、Web APIを考慮して設計書を作っているエンジニア歴3年のSEです。
業務でも、プライペートでも何かとお世話になっているWeb APIについて紹介していきます。

Web API の仕組み

Web APIとはどういうものでしょう?
詳しく見ていきます。

Web API とは

Web Application Programming Interface の略で、異なるソフトウェアアプリケーションがインターネットを介して相互に通信するための一連のプロトコルやツールのことです。
Web API を使用すると、開発者はリモートサーバーに対してデータを取得したり、操作を実行したりすることができます。
これらの操作は通常、HTTP リクエストを介して行われます。

Web API の仕組み

1. エンドポイント

API にアクセスするための特定の URL です。
各エンドポイントは特定の機能やリソースに対応しています

2. HTTP メソッド

一般的なメソッドには以下が含まれます。
GET : サーバーから情報を取得する。
POST: サーバーにデータを送信し、新しいリソースを作成する。
PUT : サーバー上の既存のリソースを更新する。
DELETE : サーバー上のリソースを削除する。

3. リクエストとレスポンス

クライアントは API エンドポイントにリクエストを送信し、サーバーはそのリクエストを処理します。
そして、通常は JSON や XML 形式でレスポンスを返します。

4. 認証

多くの API では、サービスにアクセスできるユーザーを制限するために認証が必要です。
これには、API キー、トークン、OAuth などが一般的に使用されます。

Web API の例

  • Google Maps API

    開発者がアプリケーションに地図や地理情報を埋め込むことができます。

  • Twitter API

    ツイート、ユーザー情報、トレンドなど、Twitter のデータにアクセスできます。

  • OpenWeatherMap API

    天気データ、予報、および過去の気象情報を提供します。

Web API の利点

  • 相互運用性

    異なる技術を使用するシステム間での連携を可能にします。

  • スケーラビリティ

    フロントエンドとバックエンドを分離することで、スケーラブルなアプリケーションの開発を支援します。

  • 効率性

    既存の機能やデータを再利用することで、一から開発する必要がなくなります。

Web API の動作の基本的な流れ

1 クライアントがリクエストを送信する

クライアント(例えば、ウェブブラウザやモバイルアプリ)は、Web API を通じてサーバーにリクエストを送信します。
このリクエストは、通常、HTTP プロトコルを使用し、リクエストメソッド(GET、POST、PUT、DELETE など)を指定します。

例えば、特定のユーザー情報を取得するために「GET /users/123」というリクエストを送信する場合、/users/123 はユーザーID 123 に対応する情報を取得するためのエンドポイントです。

2 サーバーがリクエストを受け取る

サーバーはクライアントからのリクエストを受信し、リクエストされたエンドポイントとメソッドに基づいて適切な処理を選択します。

サーバーは必要に応じてデータベースにアクセスし、リクエストされた情報を取得したり、データを保存したり、更新したりします。

3 サーバーがレスポンスを生成する

サーバーはリクエストの処理結果に基づいてレスポンスを生成します。
このレスポンスには、通常、HTTP ステータスコード(例: 200 OK、404 Not Found、500 Internal Server Error など)と、リクエストの結果となるデータ(通常は JSON または XML 形式)が含まれます。

例えば、「GET /users/123」のリクエストに対して、サーバーがユーザーID 123 の情報をデータベースから取得し、JSON 形式で返す場合、「200 OK」と共にユーザーのデータが返されます。

4 クライアントがレスポンスを受け取る

クライアントはサーバーからのレスポンスを受信し、その内容を処理します。
ウェブアプリケーションであれば、このデータを使用してユーザーインターフェースを更新することが考えられます。

5 エラーハンドリング

サーバーがリクエストの処理中にエラーが発生した場合、適切なエラーメッセージとHTTP ステータスコード(例えば、404 Not Found、500 Internal Server Error)をクライアントに返します。

クライアント側では、このエラーメッセージを受け取り、ユーザーに通知したり、再試行したり、別の処理を行ったりします。

Web API のコンポーネント

1. ルーティング:
API サーバーはリクエストを受け取ったときに、どのエンドポイントに対するリクエストであるかを判断し、適切な処理にルーティングします。
例えば、/users/123 というリクエストが来た場合、サーバーはそのエンドポイントに対応する処理(例えば、ユーザー情報の取得処理)を呼び出します。

2. コントローラー:
コントローラーは、ルーティングによって指示された処理を実行する役割を持ちます。
例えば、ユーザー情報を取得する処理、データを保存する処理などがコントローラーに実装されています。

3. モデル:
モデルは、アプリケーションのデータやビジネスロジックを表現する部分です。
モデルはデータベースとやり取りし、データの検証や処理を行います。

4. データベース:
サーバーはデータベースに接続して、リクエストされたデータを取得したり、更新したりします。
データベースには、ユーザー情報、製品情報、注文情報など、アプリケーションが必要とするデータが保存されています。

5. 認証と認可:
Web API では、特定のリクエストを処理する前に、ユーザーが適切な権限を持っているかどうかを確認する必要があります。
これには、API キーやトークンを使用した認証、ユーザーの役割や権限に基づく認可が含まれます。

このように、Web API はクライアントとサーバーの間でデータをやり取りし、クライアントが必要とする機能を提供する仕組みです。
API の設計によっては、これらのコンポーネントや処理がさらに複雑になることもありますが、基本的な流れは上記の通りです。