rest

RubyKaigi 2014 で Hypermedia Web API について発表しました

9月18日の RubyKaigi 2014 (1日目) で “Hypermedia: the Missing Element to Building Adaptable Web APIs in Rails” というタイトルの発表をしました。 Hypermedia: The Missing Element to Building Adaptable Web APIs in Rai… from Toru Kawamura 時間オ…

JSON Hyper-Schemaのようなサービスディスクリプションがうまくいかない理由

RubyKaigiの発表のために考えていたのですが、発表本編に詳しく入れられなくなりそうなので、まとまりないですがブログに書いてみます。SOAPでいうWSDL(Web Service Definition Language)のような、サービスのインタフェースを定義・記述するためのしくみを…

#mozaicfm REST を聴いての感想

mozaic.fmでRESTの回が企画されているということを、API Meetup #1 のときに yohei さんから直接聞いていたのですが、ついにそれが公開されたので、喜び勇んで聴きました。 mozaic.fm #7 REST 断片的に感想をツイートしたので、そのまとめです。 RESTの何が…

RESTful Meetup vol.3 を開催しました #RWABookja

4/12(土)の夜に『RESTful Meetup vol.3』を開催しました。 RESTful Meetup vol.3 - Sendagaya.rb | Doorkeeper 昨年の記事の通り『RESTful Web APIs』の読書会を月2回ペースで開催してきましたが、その後、著者のMike Amundsen(@mamund)さんから、ワークショ…

RESTful Web APIs 読書会を開催しました&第2回募集 #RWABookja

春ごろからずっと待っていた“RESTful Web APIs”がようやくリリースされたので、10/10に第1回の読書会を開催しました。 よく行くShibuya.rbや、主催のひとりであるSendagaya.rbで告知したので、Rubyを使っている方が中心でしたが、PHPやPerlを使っている方も…

Deviseのルーティングが微妙なのでgemを作ってみた

Devise便利ですよね。簡単にリッチな認証機能がつくれます。 # config/routes.rb devise_for :users new_user_session GET /users/sign_in(.:format) devise/sessions#new user_session POST /users/sign_in(.:format) devise/sessions#create destroy_user_…

RubyKaigi 2013 で発表しました

RubyKaigi 2013 の最終日、6/1に「Rails Gems realize RESTful modeling patterns」というタイトルで発表させていただきました。 Rails Gems realize RESTful modeling patterns from Toru Kawamura Ustream RubyKaigi Channel 2相変わらずコードの実例に乏…

RailsのURL設計を考えてみる(7) リスト操作

リスト操作といえば昔からActsAsListが定番ですが、「上に移動」「下に移動」のリクエストをどのようなURLで実行していますか? http://blog.takuyan.com/blog/2013/02/19/consideration-of-how-to-operate-the-list-on-rails/ この話を今週のSendagaya.rbで…

「リソースモデリングパターンの提案」の先

「RailsにおけるRESTfulなURL設計勉強会」で、僕は「リソースモデリングパターンの提案」という発表をさせてもらいました。はてブなどではいいコメントをいただいていてありがとうございます。 リソースモデリングパターンの提案 #sendagayarb from Toru Kaw…

「RailsにおけるRESTfulなURL設計勉強会」を開催しました

きっかけ window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; …

リソースの部分更新 の草稿

だいぶ前に「次期RailsがPATCHメソッドを採用」という記事を書いて、 ただし、上記ではPATCH採用のもう1つの理由である「リソースの部分更新」あたりの説明をあえて省略しました。これはちょっと個人的に思うところがあるからです。という感じなのですが、こ…

routes.rb をもう一度考えてみた

@tyabe さんに声をかけていただいて、18日のShibuya.rbでREST関連の話をさせてもらいました。 Shibuya.rb には前回のDeNAでの開催のとき初参加で、今回が2回目だったのですが、会場のAJITOはとても雰囲気がよくていいですね。ビールやドリンクがフリーなのも…

次期RailsがPATCHメソッドを採用

先月、Railsのブログにこんな記事が載りました。 http://weblog.rubyonrails.org/2012/2/25/edge-rails-patch-is-the-new-primary-http-method-for-updates/ なぜか当初とURLが変わっているようで、ブックマークは Edge Rails: PATCH is the new primary HTT…

複数のリソースに一度にアクセスしたいときのURL設計

「RESTとRailsスタイル]」のときに、@shu_0115さんから「複数同時に書き込みたいときはどうするか」という質問がありました。これは実用上はなかなか重要な点だと思うので、少しまとめます。 親子関係のリソースを更新 例えば /users/123 と /users/123/prof…

RailsのURL設計を考えてみる(6) 設計の選択肢

今回は直接Railsとは関係ないのですが、先日こういうページを見つけました。 http://redrata.com/restful-uri-design/ これは2009年に書かれたもののようですが、URL設計に関する重要な考え方がいろいろ書かれています。 その中に、このブログのシリーズの(4…

RailsでのURL設計を考えてみる(5) Railsのリソースパターン

URL設計の前段階として、とても大切なのがリソース設計です。そのWebアプリ・Webサービスで何を提供するのかが決まる部分だからです。しかし、なかなかリソースという概念が定着していないようなので、Railsで採用されているパターン*1を例に挙げて紹介して…

RailsでのURL設計を考えてみる(4) スラッシュと「持っている」関係

今回は、URLのスラッシュはどのようなときに使えばいいのか考えてみました。 resourcesのネスト URLはスラッシュ「/」で階層構造を表します。Railsでは、routes.rbでresourcesをこのようにネストして使うと、 resources :users do resources :articles end …

RailsでのURL設計を考えてみる(3) 確認画面のURLは必要か

今度は「Rails3 失敗から学ぶDevise利用時のURL設計 - 130単位」のコメントをきっかけに考えてみました。 routes.rbの書き換え 新規登録のときに確認画面や完了画面がほしいという場合はよくあります。 もともと match 'user_entry/profile' match 'user_ent…

RailsでのURL設計を考えてみる(2) follow

前回の「RailsでのfavoriteのURL設計」が思いがけなくそこそこ見てもらったようなので、いろんなパターンのURL設計を考えてみるシリーズをやってみたいと思います。(続くかどうかは未定) こんどはMioからは離れて、といってもほとんど同じようなものですが…

RailsでのfavoriteのURL設計

http://d.hatena.ne.jp/r7kamura/20110505/1304577667がすごいなと思って、routes.rbの書き方の例についてコメントしたのですが、自分で書いておいて後で「unfavorite」はちょっとまずいかなと思ったので、favorite(いわゆるお気に入り、スター)はどういう…