SlideShare a Scribd company logo
REST IS 何
Yutaka Kinjo
CONCEPT
リソース指向
resource
リソース例
PS4 のスペック情報
リソース指向

株式会社OCC の事業概要
Redmine のチケット
resource

OCC のロゴ
10 番目の素数
金城裕の2014/2/11 の blog
リソース例
リソース指向
resource
参照に値するものすべてをリソースとして捉える
リソース例
金城裕のBLOG
resource

blog
blog

http://hatena/entry/2012/08/18/

blog

http://hatena/entry/2014/02/01/

blog

http://hatena/entry/2014/02/11/
blog

blog

blog

http://hatena/entry/2012/08/18/

URIを識別子として持つ

http://hatena/entry/2014/02/01/

URI と1対1に紐づく

http://hatena/entry/2014/02/11/
blog

http://hatena/entry/2012/08/18/

構造化されている
URI : http://hatena/entry/2012/08/18/
blog
http://hatena/entry/2014/02/01/
!

hatena の entry の 2012年 の 8月 の 18日 の blog  
blog

http://hatena/entry/2014/02/11/
FEATURE
同じリソースでも、違った表現を提供する

表現の提供
xml
resource html

text

json
同じリソースでも、違った表現を提供する

表現の提供
xml
resource html

text

json
統一インターフェース
GET
POST
PUT(2/2)
PATCH
DELETE
HEAD  

Request
client

resource

Response
統一インターフェース
GET
POST
PUT(2/2)
PATCH
DELETE
HEAD  

GET
client

resource

リソースの情報を取得する
何度GETしても同じ情報が得られる
GETでリソースの情報を書き換えない
統一インターフェース
GET
POST
PUT(2/2)
PATCH
DELETE
HEAD  

POST
client

resource

resource

リソースを新たなURIに割り当てる
URIは受け取る側が決める(サーバ)
統一インターフェース
GET
POST
PUT(1/2)
PATCH
DELETE
HEAD  

PUT
client

resource

resource

リソースを新たなURIに割り当てる
URIは送る側が決める(クライアント)
冪等性を満たす
統一インターフェース
GET
POST
PUT(2/2)
PATCH
DELETE
HEAD  

PUT
client

resource
resource

既存のリソースを更新する
冪等性を満たす
統一インターフェース
GET
POST
PUT(2/2)
PATCH
DELETE
HEAD  

PATCH
client

resource
resource

既存のリソースを更新する
冪等性を満たさなくていい
(PUTとの違い)
統一インターフェース
GET
POST
PUT(2/2)
PATCH
DELETE
HEAD  

DELETE
client

既存のリソースを削除する
統一インターフェース
GET
POST
PUT(2/2)
PATCH
DELETE
HEAD  

HEAD
client

resource

META
DATA
META data を取得する
アドレス可能性
resource

✗
http://somewhere/entry/2012/08/18/
ステートレス
SUMMARY
REST の コンセプトと特徴

•
•
•
•
•

リソース指向	

複数の表現方法	

統一インターフェース	

アクセス可能性	

ステートレス
EXAMPLE
BLOG
resource

blog

client

browser
統一インターフェース
GET
POST
PUT(2/2)
PATCH
DELETE
HEAD  

GET http://hatena/entry/2012/08/18/
browser

blog

HTML
ブログの情報をHTMLで取得
著者名、タイトル、内容、タグ	

日付、広告
統一インターフェース
GET
POST
PUT(2/2)
PATCH
DELETE
HEAD  

POST
browser

blog

blog

ブログを新しく投稿する
URIは受け取る側が決める(サーバ)
投稿日付から割り当てる
統一インターフェース
GET
POST
PUT(1/2)
PATCH
DELETE
HEAD  

PUT
browser

blog

blog

ブログを新しく投稿する
URIは送る側が決める(クライアント)
予約投稿
統一インターフェース
GET
POST
PUT(2/2)
PATCH
DELETE
HEAD  

PUT
browser

blog
resource

既存のブログを編集する
冪等性を満たす
更新日付を変更してはいけない
統一インターフェース
GET
POST
PUT(2/2)
PATCH
DELETE
HEAD  

PATCH
browser

blog
resource

既存のブログを更新する
冪等性を満たさなくていい
(PUTとの違い)
更新日付を変更してもいい
統一インターフェース
GET
POST
PUT(2/2)
PATCH
DELETE
HEAD  

DELETE
browser

ブログを削除する
REST VS SOAP
Representational State Transfer

REST IS
Soft ware architecture

Simple Object Access Protocol

SOAP IS
protocol

http://www.slideshare.net/jlupox/rest-11858541
Representational State Transfer

REST IS
Soft ware architecture

Simple Object Access Protocol

SOAP IS

ex
te

nd
sX
protocol
ML
-R
P

C

ref

http://www.slideshare.net/jlupox/rest-11858541
Representational State Transfer

Simple Object Access Protocol
X

REST IS

M

SOAP IS

L-

RP

C

リソースに注目

業務ロジックに注目

URLのみでやりとり

WSDLで定義

流行ってる

流行ってた(?
Representational State Transfer

Simple Object Access Protocol
X

REST IS

M

SOAP IS

L-

RP

C

リソースに注目

業務ロジックに注目

URLのみでやりとり

WSDLで定義

流行ってる

流行ってた(?

ref http://www.publickey1.jp/blog/10/restsoapwebws-i.html
参考
http://spf13.com/post/soap-vs-rest/
http://www.publickey1.jp/blog/10/restsoapwebws-i.html
http://labo.mamezou.com/special/sp_013/sp_013_001.html
http://ja.wikipedia.org/wiki/REST
/* END */

More Related Content

PPT
初めての REST - Representational State Transfer
PPT
REST 入門
PDF
Junit intro
PPTX
Selenium webdriver使ってみようず
PDF
PDF
ホームディレクトリに埋もれた便利なコードをさがせ!
PDF
コーディング入門以前
PDF
会社に Github導入した話
初めての REST - Representational State Transfer
REST 入門
Junit intro
Selenium webdriver使ってみようず
ホームディレクトリに埋もれた便利なコードをさがせ!
コーディング入門以前
会社に Github導入した話

Similar to Rest is 何 (12)

PDF
私たちは何を Web っぽいと感じているのか
PDF
RESTful Web アプリの設計レビューの話
PDF
Signs;Gate - RESTfulなサイトの作り方 (Gunma.web #6 2011/09/03)
PDF
RESTfulとは
PDF
RESTful #とは RailsスタイルからRESTを学ぼう
PPT
丸山先生レクチャーシリーズ2007-2008
PPTX
Fluxflex meetup 2011 in Tokyo
PPTX
fluxflex meetup in Tokyo
PDF
C++ REST SDKを使ってWebサービスを利用する
PDF
Google Compute EngineとGAE Pipeline API
PDF
Google Compute EngineとPipe API
PDF
Enterprise Redmine
私たちは何を Web っぽいと感じているのか
RESTful Web アプリの設計レビューの話
Signs;Gate - RESTfulなサイトの作り方 (Gunma.web #6 2011/09/03)
RESTfulとは
RESTful #とは RailsスタイルからRESTを学ぼう
丸山先生レクチャーシリーズ2007-2008
Fluxflex meetup 2011 in Tokyo
fluxflex meetup in Tokyo
C++ REST SDKを使ってWebサービスを利用する
Google Compute EngineとGAE Pipeline API
Google Compute EngineとPipe API
Enterprise Redmine
Ad

More from Yutaka Kinjyo (9)

PDF
一度死んだ話
PDF
Deepsmarts
PDF
The dankai
PDF
IeLt2014
PDF
ちょっと怖くなくったRails
PDF
怖いRails
PDF
コンテキストと文化
PDF
開発チームのためのコミュニケーションとコンテキストの作り方
PDF
一度死んだ話
Deepsmarts
The dankai
IeLt2014
ちょっと怖くなくったRails
怖いRails
コンテキストと文化
開発チームのためのコミュニケーションとコンテキストの作り方
Ad

Rest is 何