SlideShare a Scribd company logo
1 of 39
Download to read offline
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

More from Yutaka Kinjyo (9)

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

Recently uploaded

Recently uploaded (11)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

Rest is 何