1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

なぜREST APIはHTTPを使うのか? ― Webの仕組みを活かしたAPI設計の背景

Posted at

はじめに

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ヘッダー、リクエストボディ/レスポンスボディ
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?