スポンサーリンク

【応用情報技術者試験】REST

ネットワーク通信の基本|IP・TCP・UDP・ICMP ネットワーク

REST(Representational State Transfer)は、分散ハイパーメディアシステムの設計に用いるアーキテクチャスタイルです。メッセージ形式や特定のプロトコルそのものではありません。HTTPとJSONを使うだけで、全てのRESTの制約を満たすとは限りません。

設計の制約を整理

制約 考え方
クライアントとサーバーの分離 利用側と提供側の責務を分ける
ステートレス 各要求だけで処理に必要な文脈が分かる
キャッシュ 応答が再利用できるかを明確にする
統一インターフェース リソースの識別、表現による操作、自己記述的メッセージ、ハイパーメディア等
階層化 中継が入っても隣接する相手とのやり取りで扱える
コードオンデマンド 必要に応じて実行コードを提供する任意の制約

リソースと表現

書籍をURIで識別し、その情報をJSONやXMLなどの表現として取得する例があります。URIはデータベースの行そのものではなく、識別する対象を示します。HTTPの利用では、GETで取得、PUTで指定URIの状態の作成・置換等、各メソッドの意味を守ります。POSTが常にデータベースへの新規追加だけを意味するわけではありません。

ステートレスでも業務データは保存する

ステートレスは、前の要求の会話状態に頼らず各要求を理解できるという制約です。商品や注文などのリソース状態をサーバーやデータベースに保存しない、という意味ではありません。認証に必要な情報も、要求を処理できる形で渡します。

キャッシュ・階層化の注意

全ての応答を無条件に保存してよいわけではありません。再利用の可否や有効期間、個人別の応答の扱いを定めます。RESTの階層化は中継やサービス構成の制約であり、OSIの7階層そのものとは別の話です。

安全性や処理速度は、認証・認可、入力検証、データ量、通信、実装などに依存します。RESTという名称だけでは保証されません。

確認問題:RESTはサーバーに注文データを保存することを禁止する?

禁止しません。リソースの状態と、要求をまたぐクライアントの会話状態を区別します。

関連する記事

通信の基礎をnoteで復習する

RESTの設計制約と、HTTP・TCP・IPの通信階層を混同しないための基礎復習に使えます。

OSI基本参照モデルのnote教材で、通信の役割を整理する

この教材は通信階層の復習用です。本記事の個別仕様を詳説する教材ではありません。

note教材ナビで次の学習テーマを選ぶ

参考資料

Roy Fielding:RESTのアーキテクチャスタイル

コメント