<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Rough RESTing on Rails</title>
	<atom:link href="http://barelyenough.org/blog/2006/01/rough-resting-on-rails/feed/" rel="self" type="application/rss+xml" />
	<link>http://barelyenough.org/blog/2006/01/rough-resting-on-rails/</link>
	<description></description>
	<pubDate>Thu, 04 Dec 2008 04:49:00 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
		<item>
		<title>By: Marco Web</title>
		<link>http://barelyenough.org/blog/2006/01/rough-resting-on-rails/#comment-10590</link>
		<dc:creator>Marco Web</dc:creator>
		<pubDate>Sun, 18 Feb 2007 19:15:55 +0000</pubDate>
		<guid isPermaLink="false">http://pezra.barelyenough.org/blog/?p=194#comment-10590</guid>
		<description>&lt;p&gt;I'm glad to see that you do some more work on uf-rest problems with it. Thanks for letting us know about it and also that there’s a lot of REST-based changes going on in Rails.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I&#8217;m glad to see that you do some more work on uf-rest problems with it. Thanks for letting us know about it and also that there’s a lot of REST-based changes going on in Rails.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Don Lapre James</title>
		<link>http://barelyenough.org/blog/2006/01/rough-resting-on-rails/#comment-5888</link>
		<dc:creator>Don Lapre James</dc:creator>
		<pubDate>Wed, 27 Dec 2006 22:50:03 +0000</pubDate>
		<guid isPermaLink="false">http://pezra.barelyenough.org/blog/?p=194#comment-5888</guid>
		<description>&lt;p&gt;Thanks for the update..&lt;/p&gt;

&lt;p&gt;Jim 
Don Lapre James 
webmaster@katesoriginals.com
www.katesoriginals.com  &lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Thanks for the update..</p>
<p>Jim<br />
Don Lapre James<br />
<a href="mailto:webmaster@katesoriginals.com">webmaster@katesoriginals.com</a><br />
<a href="http://www.katesoriginals.com" rel="nofollow">http://www.katesoriginals.com</a>  </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rails RESTful (2) RESTful Design 雜談 at {&#124;ihower.idv.tw&#124; blog }</title>
		<link>http://barelyenough.org/blog/2006/01/rough-resting-on-rails/#comment-4620</link>
		<dc:creator>Rails RESTful (2) RESTful Design 雜談 at {&#124;ihower.idv.tw&#124; blog }</dc:creator>
		<pubDate>Thu, 30 Nov 2006 05:52:45 +0000</pubDate>
		<guid isPermaLink="false">http://pezra.barelyenough.org/blog/?p=194#comment-4620</guid>
		<description>&lt;p&gt;[...] Rough RESTing on Rails     Filed under 程式設計 and Ruby.&#160;&#160;&#124;      var blogTool = "WordPress"; var blogURL = "http://ihower.idv.tw/blog"; var blogTitle = "{&#124;ihower.idv.tw&#124; blog }"; var postURL = "http://ihower.idv.tw/blog/archives/1545"; var postTitle = "Rails RESTful (2) RESTful Design 雜談"; var commentAuthorFieldName = "author"; var commentAuthorLoggedIn = false; var commentFormID = "commentform"; var commentTextFieldName = "comment"; var commentButtonName = "submit"; [...]&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>[&#8230;] Rough RESTing on Rails     Filed under 程式設計 and Ruby.&nbsp;&nbsp;|      var blogTool = &#8220;WordPress&#8221;; var blogURL = &#8220;http://ihower.idv.tw/blog&#8221;; var blogTitle = &#8220;{|ihower.idv.tw| blog }&#8221;; var postURL = &#8220;http://ihower.idv.tw/blog/archives/1545&#8243;; var postTitle = &#8220;Rails RESTful (2) RESTful Design 雜談&#8221;; var commentAuthorFieldName = &#8220;author&#8221;; var commentAuthorLoggedIn = false; var commentFormID = &#8220;commentform&#8221;; var commentTextFieldName = &#8220;comment&#8221;; var commentButtonName = &#8220;submit&#8221;; [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peter Williams</title>
		<link>http://barelyenough.org/blog/2006/01/rough-resting-on-rails/#comment-594</link>
		<dc:creator>Peter Williams</dc:creator>
		<pubDate>Wed, 15 Mar 2006 09:36:15 +0000</pubDate>
		<guid isPermaLink="false">http://pezra.barelyenough.org/blog/?p=194#comment-594</guid>
		<description>&lt;p&gt;I saw that on uf-rest.  Glad to see you are still working on this problem.   Maybe I will get a chance to take a look at it in the near future.   Thanks for letting me know, though.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I saw that on uf-rest.  Glad to see you are still working on this problem.   Maybe I will get a chance to take a look at it in the near future.   Thanks for letting me know, though.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan Kubb</title>
		<link>http://barelyenough.org/blog/2006/01/rough-resting-on-rails/#comment-589</link>
		<dc:creator>Dan Kubb</dc:creator>
		<pubDate>Tue, 14 Mar 2006 20:03:33 +0000</pubDate>
		<guid isPermaLink="false">http://pezra.barelyenough.org/blog/?p=194#comment-589</guid>
		<description>&lt;p&gt;Hi Peter,&lt;/p&gt;

&lt;p&gt;I wanted to let you know that I released a new version of my RESTful Rails plugin on RubyForge yesterday.  I took your suggestions, remixed them with my own ideas and I'm pretty happy with the results.&lt;/p&gt;

&lt;p&gt;Here's the announcement on the Microformats list:&lt;/p&gt;

&lt;p&gt;http://microformats.org/discuss/mail/microformats-rest/2006-March/000158.html&lt;/p&gt;

&lt;p&gt;You may also be interested to note that Rails 1.1 will have something similar to your idea of sending different variants depending on what the client asks for.  This process is called Content Negotiation, and it looks pretty cool:&lt;/p&gt;

&lt;p&gt;http://www.loudthinking.com/arc/000572.html&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Hi Peter,</p>
<p>I wanted to let you know that I released a new version of my RESTful Rails plugin on RubyForge yesterday.  I took your suggestions, remixed them with my own ideas and I&#8217;m pretty happy with the results.</p>
<p>Here&#8217;s the announcement on the Microformats list:</p>
<p><a href="http://microformats.org/discuss/mail/microformats-rest/2006-March/000158.html" rel="nofollow">http://microformats.org/discuss/mail/microformats-rest/2006-March/000158.html</a></p>
<p>You may also be interested to note that Rails 1.1 will have something similar to your idea of sending different variants depending on what the client asks for.  This process is called Content Negotiation, and it looks pretty cool:</p>
<p><a href="http://www.loudthinking.com/arc/000572.html" rel="nofollow">http://www.loudthinking.com/arc/000572.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan Kubb</title>
		<link>http://barelyenough.org/blog/2006/01/rough-resting-on-rails/#comment-567</link>
		<dc:creator>Dan Kubb</dc:creator>
		<pubDate>Tue, 24 Jan 2006 19:51:45 +0000</pubDate>
		<guid isPermaLink="false">http://pezra.barelyenough.org/blog/?p=194#comment-567</guid>
		<description>&lt;p&gt;Sorry I wasn't more clear, but I wasn't suggesting using the actual ActionView Helper system for alternate representation views.   ActionView Helper methods are too tightly bound to the representation type, which I think is a good thing.&lt;/p&gt;

&lt;p&gt;What I was suggesting was that I like the concept of Helper system on a per-representation basis.  All it is is a class where you define methods that your view/representation code can access, allowing you to extract complex logic from a view into a reusable component.  Helper systems should not be shared between different representations.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Sorry I wasn&#8217;t more clear, but I wasn&#8217;t suggesting using the actual ActionView Helper system for alternate representation views.   ActionView Helper methods are too tightly bound to the representation type, which I think is a good thing.</p>
<p>What I was suggesting was that I like the concept of Helper system on a per-representation basis.  All it is is a class where you define methods that your view/representation code can access, allowing you to extract complex logic from a view into a reusable component.  Helper systems should not be shared between different representations.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peter Williams</title>
		<link>http://barelyenough.org/blog/2006/01/rough-resting-on-rails/#comment-566</link>
		<dc:creator>Peter Williams</dc:creator>
		<pubDate>Tue, 24 Jan 2006 04:53:12 +0000</pubDate>
		<guid isPermaLink="false">http://pezra.barelyenough.org/blog/?p=194#comment-566</guid>
		<description>&lt;p&gt;I think that the helper system is not well suited for this.  We are really talking about completely independent views of the same date.  I do not think that you want either helper methods which render the entire html page or templates which are, in effect, giant if blocks (with one part being the HTML template and the next part being an Atom template and a third part being a RSS template).&lt;/p&gt;

&lt;p&gt;Perhaps some convenient for template naming could work, like "++".  But when I write that down it looks overly complicated.  On the other hand shared behavior is well understood at the controller/action level, you just have a private method that does the shared work.  Handling different content types at the controller/action definition level is not quite correct conceptually but it might be workable, pragmatic choice.  Of course I think you would just be pushing the complexity to the app developer (because they would probably end up need to explicity specify what template to use) which is probably a Bad Thing.&lt;/p&gt;

&lt;p&gt;Anyway, it is not clear to me what the best answer is but if something occurs to me I will post it here or microformats-rest.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I think that the helper system is not well suited for this.  We are really talking about completely independent views of the same date.  I do not think that you want either helper methods which render the entire html page or templates which are, in effect, giant if blocks (with one part being the HTML template and the next part being an Atom template and a third part being a RSS template).</p>
<p>Perhaps some convenient for template naming could work, like &#8220;++&#8221;.  But when I write that down it looks overly complicated.  On the other hand shared behavior is well understood at the controller/action level, you just have a private method that does the shared work.  Handling different content types at the controller/action definition level is not quite correct conceptually but it might be workable, pragmatic choice.  Of course I think you would just be pushing the complexity to the app developer (because they would probably end up need to explicity specify what template to use) which is probably a Bad Thing.</p>
<p>Anyway, it is not clear to me what the best answer is but if something occurs to me I will post it here or microformats-rest.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan Kubb</title>
		<link>http://barelyenough.org/blog/2006/01/rough-resting-on-rails/#comment-565</link>
		<dc:creator>Dan Kubb</dc:creator>
		<pubDate>Tue, 24 Jan 2006 00:25:24 +0000</pubDate>
		<guid isPermaLink="false">http://pezra.barelyenough.org/blog/?p=194#comment-565</guid>
		<description>&lt;p&gt;I think the problem about separating presentational code from controller code has already been solved to some extent with Rails' Helper system.&lt;/p&gt;

&lt;p&gt;The .rhtml template can contain simpler logic, like if statements and variable interpolation, but complex logic can be placed into Helper classes and invoked with a simple method call.&lt;/p&gt;

&lt;p&gt;If you were going to design a view module for some other representation you could decide to either include all the presentational logic inside the templates themselves, or invoke a method from an outside class.  After seeing Rails' approach work successfully in practice I'd probably design any views modules in a similar way.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I think the problem about separating presentational code from controller code has already been solved to some extent with Rails&#8217; Helper system.</p>
<p>The .rhtml template can contain simpler logic, like if statements and variable interpolation, but complex logic can be placed into Helper classes and invoked with a simple method call.</p>
<p>If you were going to design a view module for some other representation you could decide to either include all the presentational logic inside the templates themselves, or invoke a method from an outside class.  After seeing Rails&#8217; approach work successfully in practice I&#8217;d probably design any views modules in a similar way.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peter Williams</title>
		<link>http://barelyenough.org/blog/2006/01/rough-resting-on-rails/#comment-564</link>
		<dc:creator>Peter Williams</dc:creator>
		<pubDate>Mon, 23 Jan 2006 23:50:18 +0000</pubDate>
		<guid isPermaLink="false">http://pezra.barelyenough.org/blog/?p=194#comment-564</guid>
		<description>&lt;p&gt;Dan,  I look forward to seeing what you end up with.&lt;/p&gt;

&lt;p&gt;I agree that it would work along side of the current routing system.  I think it is vital that RPC style controllers continue to function as they currently do.&lt;/p&gt;

&lt;p&gt;As for content-type... I think you are right.  It is important to provide a way to easily support multiple content types but it should not be handled at the action definition level.  That code should be able to be shared by all the representations of that resource.  However, I am not sure exactly how it shoule be handled instead.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Dan,  I look forward to seeing what you end up with.</p>
<p>I agree that it would work along side of the current routing system.  I think it is vital that RPC style controllers continue to function as they currently do.</p>
<p>As for content-type&#8230; I think you are right.  It is important to provide a way to easily support multiple content types but it should not be handled at the action definition level.  That code should be able to be shared by all the representations of that resource.  However, I am not sure exactly how it shoule be handled instead.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan Kubb</title>
		<link>http://barelyenough.org/blog/2006/01/rough-resting-on-rails/#comment-563</link>
		<dc:creator>Dan Kubb</dc:creator>
		<pubDate>Mon, 23 Jan 2006 22:45:51 +0000</pubDate>
		<guid isPermaLink="false">http://pezra.barelyenough.org/blog/?p=194#comment-563</guid>
		<description>&lt;p&gt;I wrote the initial RestController proof of concept and have begun using it in a real software project.   Its evolved quite a bit from the one in my post on the microformats list, but the same basic syntax remains as you describe it.&lt;/p&gt;

&lt;p&gt;I really like your idea of putting a way of specifying the URI a controller observes inside the controller itself.  Keeps everything together in one place nice and neat.  For this to work I think it should work side by side with the
current routing system rather than replacing it.  I think I might take a stab at this in the next week.&lt;/p&gt;

&lt;p&gt;I also like the way you define handlers for each of the methods. I'll probably borrow that in my next iteration of RestController.&lt;/p&gt;

&lt;p&gt;The one thing I disagree with is that I don't think its a good idea to specify the content-type of the response in the action.  The same base instance variables should be made available for all supported views, so the same code should be used to gather together the data.  There may be slighly different presentational logic based on the type of view, but I think that logic should be pushed to the view and its helpers rather than existing inside the controller.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I wrote the initial RestController proof of concept and have begun using it in a real software project.   Its evolved quite a bit from the one in my post on the microformats list, but the same basic syntax remains as you describe it.</p>
<p>I really like your idea of putting a way of specifying the URI a controller observes inside the controller itself.  Keeps everything together in one place nice and neat.  For this to work I think it should work side by side with the<br />
current routing system rather than replacing it.  I think I might take a stab at this in the next week.</p>
<p>I also like the way you define handlers for each of the methods. I&#8217;ll probably borrow that in my next iteration of RestController.</p>
<p>The one thing I disagree with is that I don&#8217;t think its a good idea to specify the content-type of the response in the action.  The same base instance variables should be made available for all supported views, so the same code should be used to gather together the data.  There may be slighly different presentational logic based on the type of view, but I think that logic should be pushed to the view and its helpers rather than existing inside the controller.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
