RESTful API について備忘録


API(Application Programming Interface)とは?

APIとは、あるコンピュータプログラム(ソフトウェア)の機能や管理するデータなどを、外部の他のプログラムから呼び出して利用するための手順やデータ形式などを定めた規約のこと。(引用: IT用語辞典 e-Words

だそうです。。。うーん。。。

実例をみてみる

わかりにくいので、実例をみてみます。
connpass のサイトの情報を API を使って取得してみます。
API リファレンス
connpass のイベントの一覧を取ってくるのは、
https://connpass.com/api/v1/event/
というAPIです。ですが、このAPIだと自分のほしい情報があるのかないのか、なんなのかわかりません。
そこで、rails という文字列の含まれるイベントを検索してみましょう
https://connpass.com/api/v1/event/?keyword=rails
これでもまだまだ多いので、rails 文字列の入っているイベントを1件だけ取得してみましょう!
https://connpass.com/api/v1/event/?keyword=rails&count=1
これで取得できます。このようにデータを取得するものを API と呼ぶことがわかりました。

REST(REpresentational State Transfer)とは?

一般によく使われる狭義のRESTは、パラメータを指定して特定のURLにHTTPでアクセスすると、XMLで記述されたメッセージが送られてくるようなシステムおよび呼び出しインターフェース(「RESTful API」と呼ばれる)のことを指す。(引用: IT用語辞典e-Words

REST の設計原則は以下の4つだそうです。

  1. セッションなどの状態管理を行わない(やり取りされる情報はそれ自体で完結して解釈することができる)
  2. 情報を操作する命令の体系が予め定義・共有されている
  3. すべての情報は汎用的な構文で一意に識別される
  4. 情報の内部に、別の情報や(その情報の別の)状態へのリンクを含めることができる(ハイパーメディア的な書式で情報を表現する) (引用: IT用語辞典e-Words

先程の実例にもあったように、ブラウザなど取得元の環境を気にせずに URI にアクセスすると、決まったデータを取得できます。その URI 文字列も、どんな情報にまつわるものなのかがわかりやすく表現されています。
ざっくりこういったものを RESTful API と呼ぶようです。