Rest is 何
-
Upload
yutaka-kinjyo -
Category
Technology
-
view
13.000 -
download
0
description
Transcript of Rest is 何
REST IS 何Yutaka Kinjo
CONCEPT
リソース指向resource
リソース指向resource
PS4 のスペック情報
株式会社OCC の事業概要
Redmine のチケット
OCC のロゴ
10 番目の素数
金城裕の2014/2/11 の blog
リソース例
リソース指向resource参照に値するものすべてをリソースとして捉える
リソース例
金城裕のBLOG
resource blog
リソース例
blog
blog
blog
http://hatena/entry/2014/02/11/
http://hatena/entry/2014/02/01/
http://hatena/entry/2012/08/18/
blog
blog
blog
http://hatena/entry/2014/02/11/
http://hatena/entry/2014/02/01/
http://hatena/entry/2012/08/18/
URIを識別子として持つ
URI と1対1に紐づく
blog
blog
blog
http://hatena/entry/2014/02/11/
http://hatena/entry/2014/02/01/
http://hatena/entry/2012/08/18/
構造化されている
URI : http://hatena/entry/2012/08/18/ !
hatena の entry の 2012年 の 8月 の 18日 の blog
FEATURE
表現の提供
resourcexml
json
html
text
同じリソースでも、違った表現を提供する
表現の提供
resourcexml
json
html
text
同じリソースでも、違った表現を提供する
統一インターフェース
resourceclient
Response
RequestGET POST PUT(2/2) PATCH DELETE HEAD
リソースの情報を取得する
GET
何度GETしても同じ情報が得られる
GETでリソースの情報を書き換えない
GET POST PUT(2/2) PATCH DELETE HEAD
統一インターフェース
resourceclient
リソースを新たなURIに割り当てるURIは受け取る側が決める(サーバ)
GET POST PUT(2/2) PATCH DELETE HEAD
POST
統一インターフェース
resourceclient resource
リソースを新たなURIに割り当てるURIは送る側が決める(クライアント)
PUT
統一インターフェース
resourceclient
GET POST PUT(1/2) PATCH DELETE HEAD
resource
冪等性を満たす
既存のリソースを更新する
GET POST PUT(2/2) PATCH DELETE HEAD
PUT
統一インターフェース
client resourceresource
冪等性を満たす
既存のリソースを更新する
統一インターフェース
client resourceresource
冪等性を満たさなくていい
GET POST PUT(2/2) PATCH DELETE HEAD
(PUTとの違い)
PATCH
既存のリソースを削除する
統一インターフェース
client
GET POST PUT(2/2) PATCH DELETE HEAD
DELETE
META data を取得する
統一インターフェース
client
META DATA
GET POST PUT(2/2) PATCH DELETE HEAD
HEAD
resource
ステートレス
SUMMARY
• リソース指向 • 複数の表現方法 • 統一インターフェース • アクセス可能性 • ステートレス
REST の コンセプトと特徴
EXAMPLE
BLOG
resource blog
client browser
GET
ブログの情報をHTMLで取得
著者名、タイトル、内容、タグ 日付、広告
GET POST PUT(2/2) PATCH DELETE HEAD
統一インターフェース
blogbrowser
HTML
http://hatena/entry/2012/08/18/
ブログを新しく投稿するURIは受け取る側が決める(サーバ)
GET POST PUT(2/2) PATCH DELETE HEAD
POST
統一インターフェース
blogbrowser blog
投稿日付から割り当てる
ブログを新しく投稿するURIは送る側が決める(クライアント)
PUT
統一インターフェース
blogbrowser
GET POST PUT(1/2) PATCH DELETE HEAD
blog
予約投稿
既存のブログを編集する
GET POST PUT(2/2) PATCH DELETE HEAD
PUT
統一インターフェース
browser resourceblog
冪等性を満たす更新日付を変更してはいけない
既存のブログを更新する
統一インターフェース
browser resourceblog
冪等性を満たさなくていい
GET POST PUT(2/2) PATCH DELETE HEAD
(PUTとの違い)
PATCH
更新日付を変更してもいい
ブログを削除する
統一インターフェース
browser
GET POST PUT(2/2) PATCH DELETE HEAD
DELETE
REST VS SOAP
REST IS Representational State Transfer
Soft ware architecture
SOAP IS
Simple Object Access Protocol
protocol
http://www.slideshare.net/jlupox/rest-11858541
REST IS Representational State Transfer
Soft ware architecture
SOAP IS
Simple Object Access Protocol
protocol
http://www.slideshare.net/jlupox/rest-11858541
extends XML-RPC
ref
REST IS Representational State Transfer
リソースに注目
Simple Object Access Protocol
業務ロジックに注目
URLのみでやりとり
流行ってる 流行ってた(?
XML-RPCSOAP IS
WSDLで定義
REST IS Representational State Transfer
リソースに注目
Simple Object Access Protocol
業務ロジックに注目
URLのみでやりとり
XML-RPCSOAP IS
WSDLで定義
流行ってる 流行ってた(?
http://www.publickey1.jp/blog/10/restsoapwebws-i.htmlref
http://www.publickey1.jp/blog/10/restsoapwebws-i.html
http://spf13.com/post/soap-vs-rest/
http://labo.mamezou.com/special/sp_013/sp_013_001.html
参考
http://ja.wikipedia.org/wiki/REST
/* END */