HOME > 記事一覧 > Web開発 > Web基礎知識 > RESTとは?【設計の指針】

RESTとは?【設計の指針】

※ このサイトはアフィリエイト広告(Amazonアソシエイト含む)を掲載しています。

この記事では、RESTについて解説します。
RESTを理解し、その原則に従えば、シンプルな構造のシステムを開発できるようになります。
そして、柔軟で拡張性の高いサービスを実現することができます。

また、Web APIの標準的な手法としてRESTが現在主流になっています。
Web APIを利用するためにはRESTの知識が必須です。この記事を通してRESTの概要について理解しましょう。

Web APIがどのようなものかわからない方は、まずは以下の記事を読んでみてください。

Web APIとは?【Webサービス開発で利用】

Web APIとは?【Webサービス開発で利用】

RESTの始まり

現在、Webは世界中で利用されています。
このWebの技術的な成功要因を分析して、RESTというアーキテクチャスタイルが提唱されました。

アーキテクチャスタイルとは、複数のアーキテクチャに共通する性質、様式、作法、流儀を表す言葉です。
システムが持つアーキテクチャを設計するときに、アーキテクチャ設計の指針、作法、流儀を適用します。これがアーキテクチャスタイルであり、システムのアーキテクチャを決定する際の指針となります。
このようにアーキテクチャスタイルは、特定の実装やアーキテクチャではありません。

RESTは複数のアーキテクチャスタイルを組み合わせて構築した複合アーキテクチャスタイルです。

システムにおけるアーキテクチャとは
ここでのアーキテクチャとは、利用されるプログラムやシステムの設計、構成や構造などを表すことが多いです。特に、システムのアーキテクチャは、システムの設計方法やその枠組みの概略あるいは詳細のことです。
ブラウザ、サーバ、HTTP、URI、HTMLなどがアーキテクチャにあたります。

つまり、RESTとは、リソースを扱うための考え方です。
リソースとは、Web上に存在する情報のことです。

次の章から、このRESTについて詳しく見ていきましょう。

RESTの設計原則

RESTを採用したWebサービスは次のような設計原則にしたがっています。
次のようなRESTの設計原則に沿ったWeb APIをRESTfulなWeb APIと呼びます。

クライアント/ステートレスサーバ

RESTは、クライアント/サーバから派生したアーキテクチャスタイルです。クライアント/サーバアーキテクチャスタイルにいくつかの制約を加えていくと、RESTというアーキテクチャスタイルになります。

クライアント/サーバについて詳しく知りたい方は、次の記事を読んでみてください。

Webの全体像【エンジニアに必須】

Webの全体像【エンジニアに必須】


RESTでは、このクライアント/サーバにさらにステートレス性を導入します。

ステートレスとは、リクエストとレスポンスのやり取りの状態を継続して扱えないことを意味します。
ステートレス性を持つことによって、サーバ側の実装を簡略化できます。簡略な実装のサーバは、クライアントからのリクエストに応えたあとすぎにサーバの計算機リソースを解放できます。

統一したインターフェース

ここでのインターフェースとは、コンピュータを動作させるために必要なプログラム間の通信方法です。例えば、HTTPのGETメソッドやPOSTメソッドのことです。

RESTでは、リソースに対する操作を統一した限定的なインターフェースで行います。
統一した限定的なインターフェースでリソースに操作を行うこと、つまり限定されたHTTPメソッドだけを使用することによって、システムをシンプルに保つことができます。

RESTでは、次のような主にHTTPメソッドで操作を行います。


  • GET:リソースを取得する
  • POST:リソースを新規投稿する
  • PUT:リソースを更新する
  • DELETE:リソースを削除する

リソースの指定方式

RESTは、限定されたHTTPメソッドしか使えない代わりに、リソースを指定する統一的な方式を持っています。これがWebアクセスのURIに対応しています。

URIを利用することでサービス内に膨大なリソースがあっても他のリソースと区別して指定できます。

URIについて詳しく知りたい方は、次の記事を読んでみてください。

URIとは?【Web上のリソースの指定方法】

URIとは?【Web上のリソースの指定方法】

ハイパーメディア

RESTでは、リソースをリンクで接続することで1つのアプリケーションを構成しています。
つまり、Webページが現在の状態を表し、リンクで次の選択肢を示しています。

あるWebページから別のページを参照したい場合は、ハイパーメディアの基本機能であるリンクをたどる作業だけで可能です。

これによって、リソースのURIさえわかれば、あるアプリケーションが提供しているリソースを他のアプリケーションでも簡単に再利用できます。

まとめ

この記事では、柔軟で拡張性の高いWebサービスを作るために必要なRESTについて解説しました。

RESTをしっかりと理解できていれば、利用者にとって直感的で使いやすいAPIを構築することができます。この機会にRESTの概要について詳しく学んでおきましょう。

このブログだけでもWebの基礎知識を網羅的に学べますが、本で学びたい方にはこちらがおすすめです!


おすすめ記事

計算量とは?【アルゴリズムに必須】

計算量とは?【アルゴリズムに必須】

HTTPメッセージとは?【情報のやり取りの基本】

HTTPメッセージとは?【情報のやり取りの基本】

URIとは?【Web上のリソースの指定方法】

URIとは?【Web上のリソースの指定方法】

Webの全体像【エンジニアに必須】

Webの全体像【エンジニアに必須】

HTTPとは?【サーバー/ブラウザ間の通信手段】

HTTPとは?【サーバー/ブラウザ間の通信手段】