HTTP APIとREST APIの違いについて調べてみた

2025/01/01

HTTP API
REST API

HTTP APIとREST APIの違いについて調べたのでまとめました。


1. HTTP APIとは

HTTP APIは、HTTPプロトコルを使用してクライアントとサーバー間で通信を行うためのAPIの総称です。
GET, POST, PUT, DELETEなどのHTTPメソッドを使ってデータを送受信します。

  • 特徴:
    • HTTPプロトコルを使用していれば、RESTの設計原則に準拠していなくてもHTTP APIと呼ばれます。
    • 柔軟で制約が少なく、REST以外の設計(RPCなど)も可能です。

2. REST APIとは

REST API(Representational State Transfer)は、HTTP APIの一種で、特定の設計原則(RESTの原則)に従ったアーキテクチャスタイルです。

  • 特徴:
    • リソース指向の設計
    • ステートレス: 各リクエストはサーバー側に状態を保持しない。
    • 一貫したインターフェース(HTTPメソッドをリソース操作に適切にマッピング)

3. HTTP API と REST API の比較表

観点 HTTP API REST API
設計ルール 特に定まったルールはなく自由に設計可能 RESTの設計原則に従う必要がある。
リソース指向 リソースに限定されない設計が可能(例: RPC) リソース(例: /users, /products)が中心
HTTPメソッド 任意の使い方が可能 GET, POST, PUT, DELETE などがリソース操作に対応
柔軟性 非常に柔軟で、REST以外のデザインも可能 RESTの原則に準拠するため、自由度はやや低い。
キャッシュ 任意で設定可能 キャッシュが設計の一部として考慮される。
ステートレス性 必須ではない 必須(サーバー側でクライアントの状態を保持しない)
統一性 API間で統一されないこともある。 一貫したインターフェース設計が必須
効率性 高速で最適化しやすい。 RESTのルールに縛られるため効率性が劣る場合がある。
使用例 AWS API GatewayのHTTP APIなど AWS API GatewayのREST API、RESTfulサービスなど

4. AWS API Gateway における違い

HTTP API

  • 特徴:
    • シンプルで高速、低コスト
    • REST以外の設計も可能
    • WebSocket APIやAWSサービスへのルーティングに適している。
  • 推奨用途:
    • ライトウェイトなサービス
    • WebSocket API
    • パフォーマンスやコストを重視する場合に適している。

REST API

  • 特徴:
    • REST原則に準拠
    • 監視、トラフィック制御、認証機能などが充実している。
  • 推奨用途:
    • RESTful設計が必要な場合
    • 高度な監視やトラフィック制御が必要な場合に適している。

5. まとめ

  • HTTP API:
    • 柔軟でREST以外の設計にも対応可能
    • 非リソース指向のRPCやWebSocket APIでも利用可能
  • REST API:
    • リソース指向設計が中心で、統一されたインターフェースを提供している。
    • RESTの原則に準拠し、ステートレス性やキャッシュ性が重視される。

どちらを選択するかは、アプリケーションの要件や設計方針に応じて決定する必要があります。


今回はここまでです。