RESTはじめました。

2013-02-16 23:14:53

Webの構築技法にRESTがあるが、ようやく学び始めてみたので、備忘録として。
あくまで現状の理解において。
観点としては、Webサービス、Webアプリを作成する上で。

RESTとは

RESTは、URIをリソースとし、
HTTPメソッドによってアクセスすることによって、
リソースの操作を行う手法のこと。
HTTPに非常にマッチしている。

主な特徴は以下

  • ステートレス
  • URI = リソース
  • 操作 = HTTPメソッド
  • HTTPステータスコード

URIとHTTPメソッド(リソースモデリング)

例として、ユーザー管理を行う場合を考える。
各操作は以下のように対応つけられる。
※ただし、このURIはあくまでURIであって、Webアプリなどの画面に一対一に関連しなくてもいいと思う。
画面URLは別個に作っておいて、Ajaxで下記URIにアクセスするとか。これがREST的にいいか悪いかはまだ分からない。

URI GET POST PUT DELETE
/user ユーザー一覧 ユーザー追加 - -
/user{uId} ユーザー詳細 - ユーザー編集 ユーザー削除

疑問点

  • 上記の例では、/userより、/usersのように複数形のほうがいいのか?
  • よくWebアプリなどで存在する認証・ログイン・セッションなどについては、どうURI定義したらいい?そもそもステートレスなので、セッションなど不要?
  • PUTはべき等であり、POSTはそうでないという記述がよくあるが、では使い分けの基準は?
  • そもそも利点は何?これで作ると何がいいの?

最後に

MVCを最初に学んだときのような感じがして、
まだまだこれからだなとは思う。

yohei-y:weblog: REST 入門
を読んで、基礎から勉強してみようと思う。

なお、以下もとても参考になるページ
RESTfulなWebサイトと拡張子を含むURLについて - 檜山正幸のキマイラ飼育記
Sand Box #6810: Railsの擬似RESTにPut/Deleteを投げる2つの方法
REST でよくある間違い
RESTful Web Services より良いWebインタフェースの構築と分散型システム連携:第2回:REST導入における勘所 ~誤った導入をしないために~ | 豆蔵ソフト工学ラボ
[REST] 認証が必要な API を REST っぽく作るときのメモ - それはBlog
REST について調べたまとめ - Slow Dance