Rubykaigi2008: REST 信者から見た Ruby と Rails

Yohei Yamamoto
Yohei YamamotoGeneral Manager at RICOH Company Limited
REST 信者から見た
Ruby on Rails 2.0
      山本陽平
  YAMAMOTO Yohei
REST 信者から見た
Ruby on Rails 2.1
      山本陽平
  YAMAMOTO Yohei
Rubykaigi2008: REST 信者から見た Ruby と Rails
REST 信者から見た
 Ruby and Rails
      山本陽平
  YAMAMOTO Yohei
自己紹介
               Who am I
• ソフトウェアエンジニア
 – Software Engineer
• XML 野郎
 – XML guy
• REST 信者
 – RESTian
• ルビー初心者
 – JavaからRubyへ
 – Ruby beginner
 – from Java to Ruby
自慢
I’m very proud for…
Ruby スポン
サーな会社で
働いています

I’m working in Ruby
sponsor company
今日の話題
Today’s theme is…
REST と Ruby と
  Rails について
About REST and Ruby and Rails
まずは…
 First…
REST と Ruby について

  About REST and Ruby
REST と Ruby は仲良し

REST and Ruby are good friends
ruby-dev におけるRESTの議論

  REST discussion in ruby-dev
Rubykaigi2008: REST 信者から見た Ruby と Rails
Rubykaigi2008: REST 信者から見た Ruby と Rails
REST と Ruby は仲良し

REST and Ruby are good friends
REST と Rails も仲良し

REST and Ruby are also friends
Rubykaigi2008: REST 信者から見た Ruby と Rails
Rubykaigi2008: REST 信者から見た Ruby と Rails
Rubykaigi2008: REST 信者から見た Ruby と Rails
Rubykaigi2008: REST 信者から見た Ruby と Rails
REST と Rails は仲良し

REST and Rails are good friends
REST
Representational State Transfer
REST
• Web のアーキテクチャスタイル
 – Web Architectural style
• 制約の集合
 – Set of constrains
 – ULCODC$SS
抽象化レベル
     Abstraction Level
• Implementaion
  – Apache, Rails, Firefox, bot
• Architecture
  – User Agent, Server, HTTP, URI, HTML
• Architectural Style
  – Constrains, Styles
リソース指向アーキテクチャ


Resource Oriented Architecture
ROA の四つの構成要素
  Four features of the ROA
• (A) アドレス可能性
 – Addressability
• (S) ステートレス性
 – Statelessness
• (C) 接続性
 – Connectedness
• (U) 統一インターフェース
 – A Uniform Interface
A > C > U >>>>>>>>>S

アドレス可能性>接続性>統一インターフェース>>>>>>>>>>ステートレス性

Addressability > Connectedness > A Uniform Interface>>>>>>>>> Statelessness
ROA の四つの構成要素
  Four features of the ROA
• (A) アドレス可能性
 – Addressability
• (S) ステートレス性
 – Statelessness
• (C) 接続性
 – Connectedness
• (U) 統一インターフェース
 – A Uniform Interface
アドレス可能性
Addressability
アプリケーションがそのデータ
セットの重要な部分をリソースと
して公開する場合、そのアプリ
ケーションはアドレス可能である。

An application is
addressable if it exposes
the interesting aspects of
the data set as resources.
リソースは URI を通じて提供される
ため、アドレス可能なアプリケーショ
ンは提供可能な情報ごとにURI を公
開する。

Since resources are exposed
through URIs, an addressable
application exposes a URI for
every piece of information it
might conceivably serve.
リソース/URI 駆動開発
Resource/URI driven development
URI の設計
         ↓
     URI の実装
Design URI → Implement URI
URIの設計
URI design
Blog entries list resource
/entries
(GET/POST)

Blog entry resource
/entries/{entry_id}
(GET/PUT/DELETE)
URIの実装
URI implementation
map.resources :entries
シンプルだけど…
It’s simple, but…
Rails のルーティングは
素晴らしいが、コードの
構造に依存しがち

Routing of Rails is good, but
code structure dependent
URIは設計目標であって
  実装結果ではない
   URIs are design goal,
 not implementation result
Restlet
router.attach(“/entries”,
       EntryListResource.class);
router.attach(“/entries/{id}”,
       EntryResource.class);


Django
urlpatterns = patterns(
  (r’^entries/$’, entry_list),
  (r’^entries/([¥w-]+)/$’, entry_detail),
)
接続性
Connectedness
Rubykaigi2008: REST 信者から見た Ruby と Rails
現在のページ == アプリケーション状態

 Current Page = Application State
ハイパーメディアを設計
== アプリケーションを設計

 Design hypermedia
 == design application
ハイパーメディアを設計
== リソースとリンクを設計

   Design hypermedia
== design resources and links
リンクの設計
 Link design
Rubykaigi2008: REST 信者から見た Ruby と Rails
リンクの実装
Link implementation
url_for

link_to
シンプルだけど…
It’s simple, but…
リンクの意味を意識で
 きればもっといい
Semantics of a link is important
続きは WEB+DB
PRESS Vol. 45 で
まとめ
Conclusion
実際のところ Rails
は RESTful である
Actually, Rails is RESTful
アドレス可能性と
  接続性でよりよい設計を

               design by
        A better
addressability and connectedness
Rubykaigi2008: REST 信者から見た Ruby と Rails
1 of 58

Recommended

Working With Rails by
Working With RailsWorking With Rails
Working With RailsDali Wang
1.1K views31 slides
Web技術勉強会 第19回 by
Web技術勉強会 第19回Web技術勉強会 第19回
Web技術勉強会 第19回龍一 田中
1K views17 slides
Ruby on Rails Tutorial Part I by
Ruby on Rails Tutorial Part IRuby on Rails Tutorial Part I
Ruby on Rails Tutorial Part IWei Jen Lu
1K views64 slides
マジックビーンズ by
マジックビーンズマジックビーンズ
マジックビーンズAkira Suenami
22.9K views25 slides
ドメインロジックの実装方法とドメイン駆動設計 by
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計Tadayoshi Sato
14.8K views48 slides
20090418 イケテルRails勉強会 第1部Rails編 by
20090418 イケテルRails勉強会 第1部Rails編20090418 イケテルRails勉強会 第1部Rails編
20090418 イケテルRails勉強会 第1部Rails編mochiko AsTech
1.8K views56 slides

More Related Content

Similar to Rubykaigi2008: REST 信者から見た Ruby と Rails

UAI seminor at nagoya 20080515 by
UAI seminor at nagoya 20080515UAI seminor at nagoya 20080515
UAI seminor at nagoya 20080515Masahiro Umegaki
412 views34 slides
20090323 Phpstudy by
20090323 Phpstudy20090323 Phpstudy
20090323 PhpstudyYusuke Ando
1.5K views33 slides
Revisited by
RevisitedRevisited
RevisitedShunsaku Kudo
2K views119 slides
Gorm @ gopher china by
Gorm @ gopher chinaGorm @ gopher china
Gorm @ gopher chinaJinzhu
151 views29 slides
Understanding Web Services by
Understanding Web ServicesUnderstanding Web Services
Understanding Web Servicesaru85
301 views24 slides
Understanding Web Services by
Understanding Web ServicesUnderstanding Web Services
Understanding Web Servicesaru85
236 views24 slides

Similar to Rubykaigi2008: REST 信者から見た Ruby と Rails(20)

20090323 Phpstudy by Yusuke Ando
20090323 Phpstudy20090323 Phpstudy
20090323 Phpstudy
Yusuke Ando1.5K views
Gorm @ gopher china by Jinzhu
Gorm @ gopher chinaGorm @ gopher china
Gorm @ gopher china
Jinzhu 151 views
Understanding Web Services by aru85
Understanding Web ServicesUnderstanding Web Services
Understanding Web Services
aru85301 views
Understanding Web Services by aru85
Understanding Web ServicesUnderstanding Web Services
Understanding Web Services
aru85236 views
Chinaonrails Rubyonrails21 Zh by Jesse Cai
Chinaonrails Rubyonrails21 ZhChinaonrails Rubyonrails21 Zh
Chinaonrails Rubyonrails21 Zh
Jesse Cai1.2K views
企业级搜索引擎Solr交流 by chuan liang
企业级搜索引擎Solr交流企业级搜索引擎Solr交流
企业级搜索引擎Solr交流
chuan liang1.3K views
Five Minutes Introduction For Rails by Koichi ITO
Five Minutes Introduction For RailsFive Minutes Introduction For Rails
Five Minutes Introduction For Rails
Koichi ITO1.2K views
Web應用程式以及資安問題的探討 by Mu Chun Wang
Web應用程式以及資安問題的探討Web應用程式以及資安問題的探討
Web應用程式以及資安問題的探討
Mu Chun Wang570 views
オブジェクト指向スクリプト言語 Ruby by Kitajiro Kitayama
オブジェクト指向スクリプト言語 Rubyオブジェクト指向スクリプト言語 Ruby
オブジェクト指向スクリプト言語 Ruby
Kitajiro Kitayama1.9K views
Ontology-based Content Management System (ICIM 2008) by Brian Hsu
Ontology-based Content Management System (ICIM 2008)Ontology-based Content Management System (ICIM 2008)
Ontology-based Content Management System (ICIM 2008)
Brian Hsu2.1K views
Rails Deployment with NginX by Stoyan Zhekov
Rails Deployment with NginXRails Deployment with NginX
Rails Deployment with NginX
Stoyan Zhekov2.1K views
Rails Cache by wear
Rails CacheRails Cache
Rails Cache
wear1.2K views
090309seminar talk about Cloud Computing by Kohei Nishikawa
090309seminar talk about Cloud Computing090309seminar talk about Cloud Computing
090309seminar talk about Cloud Computing
Kohei Nishikawa997 views
CRE-016-商業智慧 by handbook
CRE-016-商業智慧CRE-016-商業智慧
CRE-016-商業智慧
handbook1K views
P2P Bug Tracking with SD by Jesse Vincent
P2P Bug Tracking with SDP2P Bug Tracking with SD
P2P Bug Tracking with SD
Jesse Vincent3.1K views

More from Yohei Yamamoto

WebAPIのこれまでとこれから by
WebAPIのこれまでとこれからWebAPIのこれまでとこれから
WebAPIのこれまでとこれからYohei Yamamoto
29.6K views39 slides
リコーUCSの開発をリーンスタートアップ的視点でふりかえる by
リコーUCSの開発をリーンスタートアップ的視点でふりかえるリコーUCSの開発をリーンスタートアップ的視点でふりかえる
リコーUCSの開発をリーンスタートアップ的視点でふりかえるYohei Yamamoto
6.1K views40 slides
私の考えるドキュメント指向 by
私の考えるドキュメント指向私の考えるドキュメント指向
私の考えるドキュメント指向Yohei Yamamoto
1.5K views38 slides
CAPとBASEとEventually Consistent by
CAPとBASEとEventually ConsistentCAPとBASEとEventually Consistent
CAPとBASEとEventually ConsistentYohei Yamamoto
12.1K views64 slides
良い Xml の見分け方 2007 by
良い Xml の見分け方 2007良い Xml の見分け方 2007
良い Xml の見分け方 2007Yohei Yamamoto
1.6K views35 slides
Rest 勝利宣言 by
Rest 勝利宣言Rest 勝利宣言
Rest 勝利宣言Yohei Yamamoto
1.7K views47 slides

More from Yohei Yamamoto(8)

WebAPIのこれまでとこれから by Yohei Yamamoto
WebAPIのこれまでとこれからWebAPIのこれまでとこれから
WebAPIのこれまでとこれから
Yohei Yamamoto29.6K views
リコーUCSの開発をリーンスタートアップ的視点でふりかえる by Yohei Yamamoto
リコーUCSの開発をリーンスタートアップ的視点でふりかえるリコーUCSの開発をリーンスタートアップ的視点でふりかえる
リコーUCSの開発をリーンスタートアップ的視点でふりかえる
Yohei Yamamoto6.1K views
私の考えるドキュメント指向 by Yohei Yamamoto
私の考えるドキュメント指向私の考えるドキュメント指向
私の考えるドキュメント指向
Yohei Yamamoto1.5K views
CAPとBASEとEventually Consistent by Yohei Yamamoto
CAPとBASEとEventually ConsistentCAPとBASEとEventually Consistent
CAPとBASEとEventually Consistent
Yohei Yamamoto12.1K views
良い Xml の見分け方 2007 by Yohei Yamamoto
良い Xml の見分け方 2007良い Xml の見分け方 2007
良い Xml の見分け方 2007
Yohei Yamamoto1.6K views

Recently uploaded

Voice Logger - Telephony Integration Solution at Aegis by
Voice Logger - Telephony Integration Solution at AegisVoice Logger - Telephony Integration Solution at Aegis
Voice Logger - Telephony Integration Solution at AegisNirmal Sharma
39 views1 slide
virtual reality.pptx by
virtual reality.pptxvirtual reality.pptx
virtual reality.pptxG036GaikwadSnehal
14 views15 slides
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... by
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...James Anderson
92 views32 slides
Uni Systems for Power Platform.pptx by
Uni Systems for Power Platform.pptxUni Systems for Power Platform.pptx
Uni Systems for Power Platform.pptxUni Systems S.M.S.A.
56 views21 slides
Melek BEN MAHMOUD.pdf by
Melek BEN MAHMOUD.pdfMelek BEN MAHMOUD.pdf
Melek BEN MAHMOUD.pdfMelekBenMahmoud
14 views1 slide
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... by
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc
11 views29 slides

Recently uploaded(20)

Voice Logger - Telephony Integration Solution at Aegis by Nirmal Sharma
Voice Logger - Telephony Integration Solution at AegisVoice Logger - Telephony Integration Solution at Aegis
Voice Logger - Telephony Integration Solution at Aegis
Nirmal Sharma39 views
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... by James Anderson
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
James Anderson92 views
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... by TrustArc
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc11 views
Serverless computing with Google Cloud (2023-24) by wesley chun
Serverless computing with Google Cloud (2023-24)Serverless computing with Google Cloud (2023-24)
Serverless computing with Google Cloud (2023-24)
wesley chun11 views
Powerful Google developer tools for immediate impact! (2023-24) by wesley chun
Powerful Google developer tools for immediate impact! (2023-24)Powerful Google developer tools for immediate impact! (2023-24)
Powerful Google developer tools for immediate impact! (2023-24)
wesley chun10 views
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院 by IttrainingIttraining
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
Data Integrity for Banking and Financial Services by Precisely
Data Integrity for Banking and Financial ServicesData Integrity for Banking and Financial Services
Data Integrity for Banking and Financial Services
Precisely25 views
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive by Network Automation Forum
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive

Rubykaigi2008: REST 信者から見た Ruby と Rails