「APIって何?」「REST APIとRESTful APIは何が違うの?」と疑問に思ったことはありませんか?
エンジニアとの会話や技術記事で頻出するこれらの言葉。なんとなく「Webの仕組み」とはわかっていても、いざ説明するとなると難しいものです。
本記事では、初心者の方に向けに、APIの基礎知識からRESTの設計思想、そして「RESTful」と呼ばれる理想的な状態との違いまで、わかりやすく解説しています。
この記事を読み終える頃には、REST APIの本質がスッキリと理解できているはずです。
REST APIとは何か?
REST APIとは、「Webの仕組みを最大限に活かした、使いやすくて効率的なAPIの設計ルール」のことです。
APIには様々な通信方式がありますが、その中で最も広く利用されている設計ルールになります。
APIとは何か?
REST APIを理解するためには、そもそも「API」とは何か?を知っている必要があります。
API(エーピーアイ)とは 「ソフトウェア同士がやりとりするための窓口や使い方のルール」 のことです。
例えば、天気予報アプリで考えてみると、天気予報アプリ自体は実際の計測をしていません。自社のサーバーの各地の天気の詳細なデータも保持していません。
日本気象協会はこれらの気象データをAPIで提供しています。
天気予報アプリはこのAPIに欲しい情報を問い合わせてデータを取得します。その際は、APIで決められているルールに沿って欲しい情報を要求します。
データを保持しているサーバー=APIではありません。そのデータにアクセスするためのルールやアクセス先=APIです。
なお、APIは「Application Programming Interface」の略で、アプリケーション プログラムの界面(接点)と言う意味です。
APIの種類
APIには様々な種類があります。主な種類は以下になります。
- OSのAPI(ファイル操作、画面描画)
- ライブラリのAPI(関数・クラス)
- データベースのAPI(JDBCなど)
- SDKのAPI
- ハードウェア制御API
- WEB API
WEB上で他のサイトやサーバーにアクセスするのが「WEB API」です。
ですが、API自体は「プログラム同士が機能やデータをやり取りするための取り決め全般」という定義なので、PCやあるデータベースの中など閉じた空間にも存在します。
Math.max(3, 5)GET https://api.example.com/weather/tokyoREST APIとは何か?
REST APIとは、RESTという設計原則に従って作られた Web API のことです。
もう少し詳しくいうと、Webの仕組み(HTTP)を最大限に活用した、シンプルで使いやすいAPIの設計ルールです。
現在、世界中で使われているAPIのほとんどが、この「REST」という考え方に基づいています。
RESTとは何か?RESTのルール
RESTは次の4つのルールで構成されています。
- 欲しい情報をURLで指定する
- HTTPメソッドで何をするか指定する
- 1回で完結する(ステートレス)
- シンプルなデータ形式
欲しい情報をURLで指定する
「どのデータが欲しいか」をURLで指定します。
例えば、あるサイトの「ユーザー」「123番」の情報を取得したい場合は、https://api.example.com/users/123 のように、何を操作したいかがURLを見ただけで直感的にわかります。
なお、URLには名詞(リソース)を使い、メソッド(動詞)を含めません。
HTTPメソッドで何をするか指定する
アクセスした情報に対して、Webブラウザが通信で使う「メソッド(動詞)」で何をするかを指定します。
使うメソッドは以下の4つです。
| HTTPメソッド | 意味 | 実際の操作 |
| GET | 取得 | データを読み取る(表示する) |
| POST | 作成 | 新しいデータを登録する |
| PUT | 更新 | 既存のデータを書き換える |
| DELETE | 削除 | データを消去する |
1回で完結する(ステートレス)
1回のやり取りで完結します。
前の通信の内容を覚えている必要がないため、たくさんのアクセスがあってもサーバーが混乱せず、安定して動作します。
シンプルなデータ形式
やり取りするデータの形式は、人間が見てもプログラムが読み取ってもわかりやすい形式を使います。
基本的には「JSON」「XML」「CSV」のいずれかになります。
RESTは「Representational State Transfer」の略で、「表現的な状態の転送」と言う意味です。ウェブ上でデータ(状態)を特定の形式(表現)でやり取り(転送)するという考え方や設計原則を指します。
RESTfull APIとは何か?
RESTfull APIとは、以下のRESTのルールを全て満たしたAPIのことです。
- 欲しい情報をURLで指定する
- HTTPメソッドで何をするか指定する
- 1回で完結する(ステートレス)
- シンプルなデータ形式
RESTfull APIとREST APIの違い
RESTのルールに沿ってしっかりと作られたものがRESTfull APIです。
それに対し、RESTの一部のルールを満たしそれっぽく作ってあるのがREST APIです。
例えば、GETでデータを取得する際のURLが以下のように設計されていればREST full APIです。
GET https://api.example.com/weather/tokyoURLから「東京の天気予報のデータが欲しい」というのがわかります。
一方、以下のURLの場合は、なんとなくやりたいことがわかりますが、厳密なRESTのルールに沿っていないため、REST APIとなります。
GET https://api.example.com/weather/getWeather世の中では「REST API」=「RESTfull API」
なお、上記はより厳密なREST APIとRESTfull APIの違いですが、世の中で「REST API」と言えば「RESTfull API」を指していることがほとんどす。


