Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

RESTful #とは RailsスタイルからRESTを学ぼう

15,450 views

Published on

RESTful#とは勉強会
http://rubychildren.doorkeeper.jp/events/15974

Published in: Technology
  • (Unlimited)....ACCESS WEBSITE Over for All Ebooks ................ accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M }
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • (Unlimited)....ACCESS WEBSITE Over for All Ebooks ................ accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M }
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THI5 BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

RESTful #とは RailsスタイルからRESTを学ぼう

  1. 1. RESTful #とは RailsスタイルからRESTを学ぼう 2014.10.30 Ruby Children #RESTudy
  2. 2. @tkawa • フリーランス Ruby/Rails プログラマ • Technology Assistance Partner at SonicGarden Inc. • REST厨 (RESTafarian) • Sendagaya.rb 共同主催 • “RESTful Web APIs” 読書会主催
  3. 3. 今日の内容 • RESTって何?なぜ?どうすれば? • Webのしくみ(ざっくり)とRails • Railsスタイルで作る • 質問タイム 「Webアプリを作る」観点の話が中心ですが 「Webアプリを使う」観点にも役立ちます。
  4. 4. REST
  5. 5. RESTって何? • Webの「建築様式」(Architectural Style) • ざっくりいうと • Webのしくみを形作るための大枠に なる取り決め(制約) • Webが成功している理由の1つ
  6. 6. “REST”の枠に入るのが Webのパーツ HTML HTTP URL REST Web{ JSON w/ Hypermedia CoAP
  7. 7. ちなみに • REST:名詞 RESTful:形容詞 • RESTful=「RESTな」 「RESTの性質を持つ」
  8. 8. なぜREST? Webアプリを作るときは、 「RESTにしたほうがいい」とよく言われるけど… • Web (URL, HTTP, HTML) の特長を十分に 活かせる • 人間とソフトウェア(自動処理)の 両方に優しい • シンプルな設計の指針
  9. 9. どうすればREST? • 抽象的な言葉なので、使う人によって 意味が違って伝わらないことも… • 具体的にはどうすればいいの?
  10. 10. RESTを学ぶには Webを学ぶことから • Webのルールに従う • URL, HTTP, HTML をよく知って、 正しく使う
  11. 11. Webのしくみ
  12. 12. HTTPとURLを中心に ざっくりと説明します HTML HTTP URL REST Web{
  13. 13. ブラウザ
  14. 14. 1. 2. ブラウザWebサーバ 1. ブラウザからWebサーバへリクエストを送る 2.レスポンス(HTML, CSS, JavaScript, JPEG,...)を返す
  15. 15. 重要なのは • URL • リクエストメソッド • ステータスコード
  16. 16. 1. 2. ブラウザWebサーバ URL, リクエストメソッド 1. ブラウザからWebサーバへリクエストを送る 2.レスポンス(HTML, CSS, JavaScript, JPEG,...)を返す ステータスコード
  17. 17. 1. 2. ブラウザWebサーバ
  18. 18. URL https://twitter.com/tkawa http://rubychildren.doorkeeper.jp/events/15974 • Web上に存在する「モノ(情報)」の名前 (「モノ」のことをリソースと呼びます) • ブラウザのアドレス欄に表示される • シンプルで意味のわかるものがよい
  19. 19. よちよち.rbのwikiに新しくページ作りたいん だけど、どうすればいいんだっけ?
  20. 20. よちよち.rbのwikiに新しくページ作りたいん だけど、どうすればいいんだっけ? GitHubのトップの検索ボックスで 「yochiyochirb」で検索してください。 そこから上のほうの「meetups」を押して、 右上の「Wiki」を押して、さらに右上の 「New Page」を押してください。
  21. 21. よちよち.rbのwikiに新しくページ作りたいん だけど、どうすればいいんだっけ? https://github.com/yochiyochirb/meetups/wiki/_new
  22. 22. POST https://github.com/yochiyochirb/meetups/wiki
  23. 23. リクエストメソッド GET 取得 POST 作成 PUT 更新 DELETE 削除 基本的にはこの4つだけ!! 例えば「ログインする」という操作はない ※Create, Read, Update, Delete の頭文字からCRUDとも呼びます
  24. 24. リクエスト GET https://github.com/yochiyochirb/meetups/wiki POST https://github.com/yochiyochirb/meetups/wiki PUT https://github.com/yochiyochirb/meetups/wiki DELETE https://github.com/yochiyochirb/meetups/wiki メソッド URL 「どうする」動詞「モノ」 名詞
  25. 25. GET http://example.com/users/show/123 POST http://example.com/users/create
  26. 26. GET http://example.com/users/show/123 GET http://example.com/users/123 POST http://example.com/users/create POST http://example.com/users
  27. 27. ステータスコード • リクエストに対するWebサーバからの 結果を伝える • 成功・失敗とその理由 • 3ケタの数字(+対応する説明)
  28. 28. • 200番台: 成功 • 200 OK • 300番台: リダイレクト(URLが変わった) • 301 Moved Permanently • 400番台: クライアントが原因のエラー • 404 Not Found • 500番台: サーバが原因のエラー • 500 Internal Server Error
  29. 29. RESTを学ぶには Webを学ぶことから • Webのルールに従う • URL, HTTP, HTML をよく知って、 正しく使う • しかし、それでもまだ自由すぎる • URL, HTTP, HTML をどう使えばいいの?
  30. 30. Railsスタイル • RESTに沿っていて、さらにより具体的 な設計のパターンを提示している • 今のところ成功している(!) • Rails以外で作るときにも使えばいいよ ね
  31. 31. GET http://example.com/users/show/123 GET http://example.com/users/123 POST http://example.com/users/create POST http://example.com/users
  32. 32. GET http://example.com/users/show/123 GET http://example.com/users/123 POST http://example.com/users/create POST http://example.com/users
  33. 33. Railsスタイル
  34. 34. GET POST PUT DELETE /user
  35. 35. http://d.hatena.ne.jp/tkawa/20140923 http://d.hatena.ne.jp/tkawa/20140923/p1 http://baseball.example.jp/leagues http://baseball.example.jp/leagues/central http://railsapp.example.com/users http://railsapp.example.com/users/123
  36. 36. http://d.hatena.ne.jp/tkawa/20140923 http://d.hatena.ne.jp/tkawa/20140923/p1 http://baseball.example.jp/leagues http://baseball.example.jp/leagues/central http://railsapp.example.com/users http://railsapp.example.com/users/123 /[まとまり]/[名前,, 番号]
  37. 37. GET POST PUT DELETE /users /users/123
  38. 38. GET POST PUT DELETE /users index create - - /users/123 show - update destroy GET /users/new → new GET /users/123/edit → edit
  39. 39. もう一度 リクエスト レスポンス • URL • リクエストメソッド • ステータスコード リクエスト リクエスト レスポンス
  40. 40. Railsスタイルに沿って リソースを作る
  41. 41. GET POST PUT DELETE /users index create - - /users/123 show - update destroy /[まとまり]/ 番号
  42. 42. まとまりの名前 = “resources” の名前 • まとまりの種類の名前を考えよう (まとまりなので複数形) • users, groups, … resources :users resources :groups
  43. 43. GET POST PUT DELETE /groups index create - - /groups/1 show - update destroy 「ユーザーがグループに加入する」は?
  44. 44. リクエストメソッドがあてはまらない ときは、隠れたリソースがある • 「ユーザーがグループに加入する」 = 所属 membership の作成 GET POST PUT DELETE /memberships index create - - /memberships/1 show - update destroy
  45. 45. まとめ • “REST”の枠に入るのが Webのパーツ • Webで重要なのは • URL • リクエストメソッド • ステータスコード • 作るときはRailsスタイルに 従えば楽 http://rest-pattern.hatenablog.com/ http://d.hatena.ne.jp/tkawa/searchdiary?word=*[rest]

×