参考記事
APIとは
API(Application Programming Interface)とは、プログラムやアプリケーションの機能を外部から利用するためのインターフェース。外部のプログラムやアプリケーションは、APIを呼び出すことで、必要な機能を利用することができる。APIを利用することで、開発者は他のプログラムやアプリケーションとデータをやり取りしたり、機能を利用したりすることができる。
APIは、Webアプリケーション、モバイルアプリケーション、デスクトップアプリケーションなど、様々な種類のアプリケーションで使用され、プログラミング言語やプラットフォームに依存しないため、異なるシステム間での情報交換にも利用される。
RESTとは
REST(Representational State Transfer)は、Webアーキテクチャのスタイルの1つで、Web上のリソースを表現し、アクセスするための設計原則の集合体。RESTは、HTTPプロトコルに基づき、Webの性質に合わせたシンプルな設計が特徴。
RESTful APIとは
RESTful APIは、RESTの原則に従って設計されたAPIで、プログラムやアプリケーションの機能を外部から利用するためのインターフェース。
- 完璧な REST は REST API と呼び、そうではない場合は RESTful API と呼ぶ。
- REST 原則に従わないものは REST という言葉を使わず、HTTP API などと呼ぶべきである。
- RESTful の -ful は「満たす」を意味するので、RESTful API は REST の原則を満たすべきだ。
RESTful Webサービス – O’REILLY
RESTの4つの設計原則
RESTの原則は、大きく以下の4つに集約できる。※より詳細に分類する場合は6つの原則と言える
原則1: ステートレスなクライアント/サーバプロトコル
HTTPメッセージの全てがリクエストを理解するための必要な情報を含んでいることから、HTTP通信を行うクライアントもサーバもメッセージ間におけるセッションの状態を記憶している必要がない
※ステートレスと表現しているが、実際にはCookieなどを使用し、セッション状態を管理している
原則2: リソースを一意なURIにより識別される
RESTfulなシステムでは全てのリソースはURI(Uniform Resource Identifeier)で表現されるユニークなアドレスを持つ
原則3: HTTPメソッドで操作方法を表現した統一されたインターフェース
リソースを操作するメソッドは、HTTPで定義されている"GET"、"POST"、"PUT"、"DELETE"などを使用する。つまり、情報を操作する命令体系があらかじめ定義されている。
原則4: アプリケーション情報と状態遷移の両方を扱えるハイパーメディアの仕様
リソースを様々な形式(HTML、XML、JSON、バイナリ)で表現できるようにする。また、関連するデータはハイパーメディア(リンク)としてデータに含めることができる