目次
RESTとは何か?
REST(Representational State Transfer) は、
2000年に Roy Fielding が博士論文で定義した「Webアーキテクチャの設計原則」です。
- Roy Fielding “Architectural Styles and the Design of Network-based Software Architectures”
https://home.cs.colorado.edu/~kena/classes/7818/f08/lectures/lecture_9_fielding_disserta.pdf
RESTは主に以下のような特徴を満たす設計スタイルです:
- ステートレス
- セッション状態は完全にクライアント側に保持される。
(=サーバはクライアントの状態情報を保持しない)
- セッション状態は完全にクライアント側に保持される。
- クライアント–サーバ
- クライアントとサーバーの役割を分離
- キャッシュ可能
- データレスポンスが「キャッシュ可能」かどうかを明示
- 統一インターフェース(Uniform Interface)
- Identification of resources
リソースの識別(URI などによってリソースを一意に識別する)。 - Manipulation of resources through representations
リソースは “表現(Representation)” を通じて操作される。 - Self-descriptive messages
メッセージ自体で意味が理解できる。 - Hypermedia as the engine of application state
アプリケーション状態の遷移はハイパーメディアによって行われる(HATEOAS)。
- Identification of resources
- 階層化システム
- コードオンデマンド(オプション)
- Allows extension of client functionality
クライアントの機能をサーバから送られたコードによって拡張できる。 - Reduces the number of pre-implemented features
クライアント側で事前に実装しておく機能の数を減らすことができる。
- Allows extension of client functionality
REST APIとは?
REST API とは、HTTP を利用した Web API のうち、Roy Fielding が提唱した REST アーキテクチャスタイルの制約(例:クライアント-サーバ、ステートレス、キャッシュ可能、統一インターフェース、階層化システム、コード・オン・デマンド(任意))を満たす設計のものを指します。
参考
IBMのサイトでは、REST APIについて、以下のように記載しています。
REST APIは、分散ハイパーメディアシステムの接続に使用されるREST(Representational State Transfer)アーキテクチャスタイルの設計原則に準拠した
出典:IBM:What is REST API? https://www.ibm.com/think/topics/rest-apis
アプリケーションプログラミングインターフェース(API)です。REST APIは、RESTful APIまたはRESTful Web APIと呼ばれることもあります。
APIとは
API (アプリケーション プログラミング インターフェイス) は、ソフトウェア アプリケーションが相互に通信してデータ、機能、および機能を交換できるようにする一連のルールまたはプロトコルです。
出典:IBM:What is an API? https://www.ibm.com/think/topics/api
- IBM:What is REST API?
https://www.ibm.com/think/topics/rest-apis
参考
- Roy Fielding “Architectural Styles and the Design of Network-based Software Architectures”
https://home.cs.colorado.edu/~kena/classes/7818/f08/lectures/lecture_9_fielding_disserta.pdf - IBM:What is REST API?
https://www.ibm.com/think/topics/rest-apis
コメント