REST API(RESTful API)とはWeb設計思想の1つであるREST(Representational State Transfer)に従ったAPI(Application Programming Interface)のことを指します。
REST APIを用いることで開発にかかる時間やコストの削減を行うことができ、価格を抑えたサービス提供を行えるだけでなく、共通の枠組みとすることで開発者は理解しやすく効率的な開発が行えます。今回はREST APIの特徴やメリットについて解説を行います。
APIとは
APIとはApplication Programming Interfaceの略でさまざまなアプリケーションの機能を外部から利用できるよう設計されたインターフェースを指します。
このインターフェースは何かと何かを繋ぐ物の総称で、例えばマウスやキーボードなどは人とコンピューターを繋ぐユーザーインターフェースです。APIの場合も同じでクライアントとサーバーを繋ぐインターフェースを指します。APIにはさまざまな種類がありますが、開発現場で広く利用されているのがWeb APIであり、昨今ではAPIと言えばWeb APIを指す場合が増えています。Web APIはWeb上で公開されている機能や情報をHTTP(またはHTTPS)プロトコルで通信し、利用するものを指します。
例えば、代表的なWeb APIにGoogle Map APIがあります。Google Map APIはWebサイト上にGoogle Mapの機能を埋め込めるWeb APIで、Webサイトを訪れたユーザーは目的地周辺の地図を確認するなど、Google Mapに接続しているかのような操作が行えます。
RESTとは
RESTとはRepresentational State Transferの略でWeb設計思想の1つ1です。
このRESTには4つの原則があり、2000年にRoy Fielding氏が自身の論文で提唱したものに基づいています。この4つの原則について詳しく解説を行います。
1. アドレス可能性(Addressability)
アドレス可能性とはURIを通してリソースを端的に表現できる性質を表し、すべての情報が一意なURIで表現されるようにすることを言います。
2. ステートレス性(Stateless)
ステートレス性とはサーバーが過去の状態(ステート)を持たず、その都度受け取ったリクエストに対してレスポンスを行うことを指します。
3. 接続性(Connectability)
接続性とはやりとりされる情報にハイパーリンクを含めることができることを指します。
1つのリンクから別の情報へ接続することができ、円滑に情報連携を行うことができます。
4. 統一インターフェース(Uniform interface)
統一インターフェースとはHTTMPメソッドなどあらかじめ定義・共有された方法でやり取りされることを指します。
REST APIの6つの特徴
REST APIはRoy Fielding氏の論文で提唱された4つの原則に従ったAPIということがわかりました。
このREST APIは以下のような特徴を持っています。それぞれの特徴について解説を行います。
- 統一インターフェース
- ステートレス
- 階層型構造
- キャッシュ
- クライアント・サーバーアーキテクチャ
- コードオンデマンド
統一インターフェース
REST APIではデータ形式は主にJSON、リクエスト〜レスポンスまでの処理はHTTPメソッドを利用することが決まっています。インターフェースが統一されていればブラウザやモバイルアプリケーションなどRESTを利用するクライアントであれば同じ方法でサーバーが呼び出せ、リソースにアクセスすることが可能です。
ステートレス
RESTの原則でも挙げられているように、サーバーは過去の情報(セッション情報など)を保持しません。これによりサーバーは余分な情報を保存する必要がなくなり、軽量化や実装のしやすさ、拡張性の高さにつながります。
階層型構造
階層型構造とはクライアントとサーバーを完全に切り離すことで各アプリケーションがアクセスできる情報を制限し、コンポーネントの管理を強化できます。
キャッシュ
REST APIではHTTPメソッドを用いているためキャッシュが可能です。キャッシュ機能を活用すればリソースの鮮度に基づいて、一度取得したリソースをクライアント側で再使用することができます。
クライアント・サーバーアーキテクチャ
クライアントとサーバーは完全に独立しており、変更点があった場合でも互いに影響されることはありません。ほとんどのWebで同じように設計されていますが、RESTではこの制約を明文化しています。
コードオンデマンド
コードオンデマンドはプログラムコードをサーバーからダウンロードし、クライアント側でそれを実行するアーキテクチャスタイルのことをいいます。
REST APIを用いるメリット・デメリット
WebサービスにAPIを採用し、RESTに従った設計にすることで以下のようなメリット・デメリットがあります。
メリット
REST APIを使うことでシンプルで効率的な開発が行えます。HTTPメソッドやJSON形式など一般的なWeb技術を用いるため開発が容易であり、ステートレスにより負荷に応じた拡張がしやすい点などが挙げられます。
デメリット
デメリットはあくまでRESTは開発における設計思想の1つであり、実装の規定などがないため開発者により記述方法にばらつきが出てしまう点が挙げられます。
まとめ
REST APIとはWeb設計思想の1つであるRESTに従ったAPIを指します。
RESTには次に掲げる4原則があり、それらに沿ったAPIをREST APIといいます。
- アドレス可能性
- ステートレス性
- 接続性
- 統一インターフェース
現代のシステムやサービスは外部サービスとの連携を前提に開発されていることが多く、Web APIを用いる事で既存サービスを活用し、コストの削減や開発スピードの向上に繋げることができます。その中でも主流であるREST APIは幅広いエンジニアに求められるスキルのため、基本を理解して開発を行えるようにしましょう。
エンベーダー編集部
エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。
関連記事
2020.02.25
完全未経験からエンジニアを目指す爆速勉強法
USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
- キャリア・学習法
- エンジニア
2023.08.06
FQDN(完全修飾ドメイン名)とは?URLの仕組みから学ぶFQDN
今回はURLの仕組みからFQDNとは何か?について解説を行います。
- WEB
2023.02.12
【SEO対策】GoogleサーチコンソールとGoogleアナリティクスの違いとは? 登録から連携方法まで解説
今回はWebサイトの運営を行う上で必須なツールであるGoogleサーチコンソールとGoogleアナリティクスの登録、連携方法について解説を行います。
- WEB
- SEO
2023.08.31
【徹底解説】ステータスコード3xxについて詳しく
こちらの記事では、HTTPステータスコード300系について解説します。
- WEB