振り返り Ruby on Railsチュートリアル(5日目)
前回はHerokuの概要と、簡単なデプロイについて書きました。
今回は、REST(Representational State Transfer)について書きます。
また、タイトルに「Ruby on Railsチュートリアル(○日目)」と付けるのをやめます。。。。
RESTって?
Webサービスにおける設計概念(モデル)のことで、URIにHTTPメソッドでアクセスすることで、データの送受信を行う考え方です。
様々なフレームワークに適用されており、TwitterやGithubといったSNSのサービスの中にはAPIを公開しています。
RESTに従うシステムのことを、RESTfulとよびます。
REST設計の原則
ステートレスなクライアント/サーバプロトコル
ステートレス、つまり状態を持たないように作ってるということです。
例えば、サーバがクライアントとのセッション情報を保持しないようにすることが挙げられます。
ステートレスにすると、良いことは
- 冗長になるが、リクエストする情報で処理に必要な全ての情報になる。(わかりやすい)
- 拡張しやすい
- 処理が単純になる
(ここが参考になりました。yohei-y:weblog - ステートレスとは何か)
すべての情報(リソース)に適用できる「よく定義された操作」のセット
HTTPで例えるなら、HTTPのリクエストを利用して管理をしているということです。
HTTPには以下のリクエストがあります
- GET … 取得
- POST … 追加
- PUT … 更新
- DELETE … 削除
リソースを一意に識別する「汎用的な構文」
URIによって、一意的なアドレスになるということです。
例えば、以下のURLにアクセスするだけで、そのユーザの情報が取れることです。
https://www.hogehoge.com/users/okky
なので、URLが名詞になることが多いです。
アプリケーションの情報と状態遷移の両方を扱うことができる「ハイパーメディアの使用」
HTMLやXMLにといったハイパーメディアに、別のハイパーメディアへの情報(リンク)を含められることです。
リンクを含めることで、簡単に他のページやリソースにアクセスできます。
終わりに
チュートリアルは2章まで終わりました。
次回はテストについて書こうと思います。
参考
・Wikipedia - Representational State Transfer
・0からREST APIについて調べてみた