【完全理解】RESTful APIとは
💭 はじめに
FastAPIやOpenAPIを理解するうえで欠かせないのが、RESTful API(レストフルAPI) です。
「RESTってなに?」
「APIとの違いがよくわからない」
そんな疑問を解決するために、この記事では初心者にもわかりやすく解説します。
💡 RESTとは?
REST(Representational State Transfer)とは、
Web上でアプリケーション同士がデータをやり取りするための「考え方」や「ルール」 のことです。
たとえば、
「本を登録する」「ユーザー情報を取得する」といった操作を、
どんなアプリでも共通のやり方で行えるように決めた約束ごとだと思ってください。
このルールに従って作られたAPIを、RESTful API(レストフルAPI) と呼びます。
💬 RESTという名前は「Representational State Transfer(表現的な状態の転送)」の略。
Webの基本的な仕組み(URLやHTTP)を使って、情報の“状態”をやり取りするという意味です。
🧭 RESTの4原則
RESTの考え方には、4つの基本ルール(原則)があります。
これを理解すれば「RESTful APIとはどういう仕組みなのか」が見えてきます👇
① Stateless(ステートレス)
「状態を持たない」という意味です。
1回のリクエストはそれ単体で完結し、サーバーは「前の通信内容」を覚えません。
クライアント → サーバー
「/user?id=1」の情報をください
2回目以降の通信でも、再び同じリクエストを送れば同じ結果が返ります。
サーバーは過去の状態に依存せず、毎回リクエストの内容だけで判断します。
🧠 ポイント:
- 各リクエストは独立している
- サーバーにセッション(状態)を保持しない
- 「1回の通信で完結する」設計
② Uniform Interface(ユニフォームインターフェース)
「統一された操作方法」という意味です。
RESTでは、すべてのリソース(情報)に対して共通のルールで操作を行います。
そのルールが、HTTPメソッド(GET, POST, PUT, DELETE)です。
| HTTPメソッド | CRUD操作 | 内容 |
|---|---|---|
| POST | Create | 新しいデータを作成 |
| GET | Read | データを取得 |
| PUT | Update | 既存データを更新 |
| DELETE | Delete | データを削除 |
このように、
「何をするか」ではなく「どんな操作をしたいか」をHTTPメソッドで表す
のがRESTの特徴です。
これにより、異なるアプリ間でも統一的に情報をやり取りできるようになります。
③ Addressability(アドレサビリティ)
「リソースごとに一意の住所(URI)をもつ」ことです。
URI(Uniform Resource Identifier)は、
インターネット上の"住所" のようなもの。
どんな情報にも「アクセス先」が決まっていることで、RESTらしい設計になります。
📘 例:書籍を扱うAPI
| リソース | URI |
|---|---|
| 全ての書籍 | /books |
| 特定の書籍 | /books/1 |
| 著者情報 | /authors/5 |
URIを見ただけで「どんな情報にアクセスしているか」が分かるのがポイントです。
🧠 ポイント:
- URIは「名詞」で表す(/getBookのような動詞は使わない)
- 各リソースに一意のURIを割り当てる
- シンプルで読みやすいURL設計になる
④ Connectability(コネクタビリティ)
「リンクを使って情報をつなぐ力」のことです。
RESTでは、システム間の情報をリンクで結び、
クライアントがリンクを辿ることで関連情報にアクセスできます。
📘 例:
- /books/1/author → 本1の著者情報へ
- /authors/5/books → 著者5の書籍一覧へ
このように、Webページをクリックして情報を渡り歩くように、
API同士が“リンクでつながる”仕組みがコネクタビリティです。
✅ まとめ
- RESTは、Webの仕組みを活かして情報をやり取りするための“共通ルール”
- RESTful APIは、そのルールに従って設計されたWeb API
Discussion