はじめに
APIについて学んでいると、よく「REST API」や「HTTPメソッド」といった言葉に出会います。
特に「REST APIはHTTPを使っている」と聞くと、
「そもそもAPIはコンピューター同士の通信なのに、Webページ用のHTTPをわざわざ使う必要ある?」
と疑問に感じる人もいるかもしれません。
この記事では、そんな素朴な疑問に向き合いながら、HTTPメソッドの役割やREST APIとの関係をわかりやすく整理します。
HTTPメソッドとは何か?
HTTPメソッドとは、Webブラウザなどのクライアントがサーバーに対して「どんな操作をしたいか」を伝える命令です。
たとえば:
-
GET
:データを取得したい(例:Webページを表示) -
POST
:新しいデータを送信したい(例:フォーム送信) -
PUT
:データを更新したい -
DELETE
:データを削除したい
これらのメソッドは、HTTPリクエストの最初の行(リクエストライン)に書かれて送られます。
普段私たちがWebサイトを見るとき、ブラウザは自動的に GET
メソッドを使ってサーバーからページを取得し、サーバーは「200 OK」というステータスとともにHTMLを返します。
APIにHTTPを使う必要はあるのか?
API(Application Programming Interface)は、コンピューター同士がデータをやり取りするための仕組みです。
これは人間が見るWebページとは違い、単にデータを送受信するだけなので、わざわざHTMLやHTTPといったWeb向けの仕組みを使う必要はないようにも思えます。
実際、専用のプロトコル(たとえばgRPCや独自TCP通信など)を使ったAPIも存在します。
それでもREST APIのように、HTTPをベースにしたAPI設計が広く使われているのには理由があります。
REST APIとは? なぜHTTPを使うのか?
REST(Representational State Transfer)は、Webの仕組み(URIやHTTPメソッド)を活用して、リソースにアクセスするという設計思想です。
REST APIとは、その考え方に従ってHTTPを使って設計されたAPIです。
例として、あるユーザー情報を取得・作成・更新・削除するAPIは以下のようになります:
操作 | HTTPメソッド | URL | 意味 |
---|---|---|---|
情報を取得 | GET |
/users/123 |
ユーザー123番の情報を取得 |
新規作成 | POST |
/users |
新しいユーザーを作成 |
情報を更新 | PUT |
/users/123 |
ユーザー123番の情報を更新 |
情報を削除 | DELETE |
/users/123 |
ユーザー123番を削除 |
このように、**URL(リソース)+HTTPメソッド(操作)**というWebの基本構造を流用して、APIをわかりやすく設計できるのがRESTの特徴です。
なぜREST APIが広まったのか?
REST APIが広く使われている理由は、単に「HTTPを使えるから」だけではありません。
- 既存のインフラ(Webサーバー、ブラウザ、プロキシ、ファイアウォール)に乗れる
- 学習コストが低く、直感的
- URLとメソッドを組み合わせることで、意味の通った設計ができる
- ツール(curl、Postman、ブラウザの開発者ツールなど)で簡単に扱える
たとえば、TwitterのAPI(Twitter API)などもRESTベースで作られており、簡単なツールで自動ツイートや検索ができるようになっています。
おわりに
REST APIは、一見遠回りに見える「HTTP」という手段をあえて使っていますが、そこにはWebの仕組みを最大限に活用し、わかりやすく・使いやすいAPIを設計するという狙いがあります。
「Webページを取得するための仕組み」だったHTTPが、いまやデータのやり取りにも活用されているという点は、Web技術の柔軟さと拡張性の象徴ともいえるでしょう。
付録:関連キーワード
- RESTとRESTfulの違い
- GraphQLやgRPCとの比較
- ステータスコード(200 OK、404 Not Found、500 Internal Server Error など)
- HTTPヘッダー、リクエストボディ/レスポンスボディ