REST紹介(簡易版)。RESTとSOAP。
RESTについて自分の理解をまとめておきます。
何も知らない方へREST理解の手助けになれば幸いです。
RESTとSOAP。
RESTを学ぼうとする時にSOAPと比較しがちですが、SOAPとRESTはレイアが違うというか全く別物で比較すべきものではないと思います。
従って、RESTを理解する際はSOAPの事は忘れて下さい。
RESTとは。
RESTとはWebの原則に従った設計の事です。
キーワードとなってくるのは、
です。
URI
URIは名詞。
URIリソースを示すものです。
動詞ではなく名詞で設計します。
Bad:
http://domain.com/GetItemList/
Good:
http://domain.com/Items/
サーバの意図とクライアントの意図を分離。
ドメイン、パスはサーバの意図を示します。
クライアントの意図はクエリ文字列で示します。
Bad:
http://domain.com/Items/?id=X001
Good:
http://domain.com/Items/X001/
単数複数形を適切に使う。
URIに限った話ではありませんし、日本人だけが犯しがちなミスですが、複数のリソースを示すURIは複数形にします。
Bad:
http://domain.com/Item/
Good:
http://domain.com/Items/
一意のリソースを示すURIは 複数形/ID が一般的なようです。
Bad:
http://domain.com/Item/X001/
Good:
http://domain.com/Items/X001/
HTTPメソッド
挙動(CRUDなど)はURIで示すのではなく、HTTPメソッドで示します。
アイテムの登録
Bad:
POST http://domain.com/Item/X001/?action=create
Good:
POST http://domain.com/Items/X001/
アイテムの更新
Bad:
POST http://domain.com/Item/X001/?action=update
Good:
PUT http://domain.com/Items/X001/
アイテムの削除
Bad:
POST http://domain.com/Item/X001/?action=delete
Good:
DELETE http://domain.com/Items/X001/
ただし、流派がある?
2014/11/29現在、GETとPOSTしか使っていないWebAPIも多い(twitterなど)という事実もあります。
詳細は調べていませんが、GETとPOSTしか許可していないプロキシサーバがあるなどの背景があるようです。
HTTPステータス
成功:200
クライアントエラー:400,404
サーバエラー:500
これらだけではなく、適切なHTTPステータスを使用してクライアントに処理結果を示します。
最後に
以上です。簡易的な紹介としてはこれだけで十分だと感じました。
もちろん歴史的な背景等もっと詳細を追えば、RESTの理解をもっと深めることが出来ると思います。
より詳細な内容については参考にした書籍、サイトを参照頂ければと思います。
参考
書籍
Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)
- 作者: 山本陽平
- 出版社/メーカー: 技術評論社
- 発売日: 2010/04/08
- メディア: 単行本(ソフトカバー)
- 購入: 143人 クリック: 4,320回
- この商品を含むブログ (180件) を見る