<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Explaining State in HATEOAS</title>
	<atom:link href="http://www.subbu.org/blog/2008/10/explaining-state-in-hateoas/feed" rel="self" type="application/rss+xml" />
	<link>http://www.subbu.org/blog/2008/10/explaining-state-in-hateoas</link>
	<description>HTTP, REST and some Cycling</description>
	<lastBuildDate>Mon, 15 Mar 2010 08:14:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: William Vambenepe &#8212; REST in practice for IT and Cloud management (part 3: wrap-up)</title>
		<link>http://www.subbu.org/blog/2008/10/explaining-state-in-hateoas/comment-page-1#comment-47527</link>
		<dc:creator>William Vambenepe &#8212; REST in practice for IT and Cloud management (part 3: wrap-up)</dc:creator>
		<pubDate>Thu, 10 Dec 2009 10:16:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.subbu.org/?p=503#comment-47527</guid>
		<description>[...] media types to describe interfaces to those transitions.&#8221; I get the hypermedia concept, the HATEOAS approach and its very practical benefits. But I am still dubious about the role of Mime types in achieving [...]</description>
		<content:encoded><![CDATA[<p>[...] media types to describe interfaces to those transitions.&#8221; I get the hypermedia concept, the HATEOAS approach and its very practical benefits. But I am still dubious about the role of Mime types in achieving [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Shantanu Kumar</title>
		<link>http://www.subbu.org/blog/2008/10/explaining-state-in-hateoas/comment-page-1#comment-37165</link>
		<dc:creator>Shantanu Kumar</dc:creator>
		<pubDate>Fri, 21 Aug 2009 16:54:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.subbu.org/?p=503#comment-37165</guid>
		<description>@Bill, @Subbu

I am wondering how about embedding only the URI of a resource (rather than its representation) into the referring resource representation.

This may lead to additional round-trip (fortunately GET can be cached), but it will let you avoid &quot;stateful-ness&quot; of the resource by the introduced level of indirection.</description>
		<content:encoded><![CDATA[<p>@Bill, @Subbu</p>
<p>I am wondering how about embedding only the URI of a resource (rather than its representation) into the referring resource representation.</p>
<p>This may lead to additional round-trip (fortunately GET can be cached), but it will let you avoid &#8220;stateful-ness&#8221; of the resource by the introduced level of indirection.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: vano</title>
		<link>http://www.subbu.org/blog/2008/10/explaining-state-in-hateoas/comment-page-1#comment-14784</link>
		<dc:creator>vano</dc:creator>
		<pubDate>Wed, 24 Dec 2008 14:56:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.subbu.org/?p=503#comment-14784</guid>
		<description>IMO, the topic of &quot;state&quot; is very important. Would be nice if you could write another post &quot;Explaining State in REST&quot; (here I mean the third letter &quot;S&quot; in the acronym) and comparing it with the State in HATEOS.</description>
		<content:encoded><![CDATA[<p>IMO, the topic of &#8220;state&#8221; is very important. Would be nice if you could write another post &#8220;Explaining State in REST&#8221; (here I mean the third letter &#8220;S&#8221; in the acronym) and comparing it with the State in HATEOS.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Subbu Allamaraju</title>
		<link>http://www.subbu.org/blog/2008/10/explaining-state-in-hateoas/comment-page-1#comment-8709</link>
		<dc:creator>Subbu Allamaraju</dc:creator>
		<pubDate>Wed, 29 Oct 2008 03:34:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.subbu.org/?p=503#comment-8709</guid>
		<description>Other than by putting the cart in some kind of a database?</description>
		<content:encoded><![CDATA[<p>Other than by putting the cart in some kind of a database?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stephan Schmidt</title>
		<link>http://www.subbu.org/blog/2008/10/explaining-state-in-hateoas/comment-page-1#comment-8688</link>
		<dc:creator>Stephan Schmidt</dc:creator>
		<pubDate>Tue, 28 Oct 2008 21:12:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.subbu.org/?p=503#comment-8688</guid>
		<description>Cart ;-)</description>
		<content:encoded><![CDATA[<p>Cart ;-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stephan Schmidt</title>
		<link>http://www.subbu.org/blog/2008/10/explaining-state-in-hateoas/comment-page-1#comment-8687</link>
		<dc:creator>Stephan Schmidt</dc:creator>
		<pubDate>Tue, 28 Oct 2008 21:12:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.subbu.org/?p=503#comment-8687</guid>
		<description>.... and how do we represent a shopping card then?

http://stephan.reposita.org/archives/2008/10/09/the-future-web-development-without-web-frameworks-my-slides-from-the-first-berlin-java-conference/

Peace
-stephan</description>
		<content:encoded><![CDATA[<p>&#8230;. and how do we represent a shopping card then?</p>
<p><a href="http://stephan.reposita.org/archives/2008/10/09/the-future-web-development-without-web-frameworks-my-slides-from-the-first-berlin-java-conference/" rel="nofollow">http://stephan.reposita.org/archives/2008/10/09/the-future-web-development-without-web-frameworks-my-slides-from-the-first-berlin-java-conference/</a></p>
<p>Peace<br />
-stephan</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: subbu</title>
		<link>http://www.subbu.org/blog/2008/10/explaining-state-in-hateoas/comment-page-1#comment-8515</link>
		<dc:creator>subbu</dc:creator>
		<pubDate>Mon, 27 Oct 2008 02:39:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.subbu.org/?p=503#comment-8515</guid>
		<description>I don&#039;t want to say that this is &quot;poisoning developer minds&quot;, but explaining that representations are akin to some value objects is a bit misleading. Here is why.

Let me consider a bank transfer example, where we identified a bank transfer as a resource. The usual flow is as follows:

POST /transfer -----&gt; 201 Created, Location: http://example.org/transfer/1

Now, when a client submits a &quot;GET /transfer/1&quot;, what should the server return? In the value object model, it would return some serialized form of that object, e.g., as in

&lt;transfer&gt;
 &lt;id&gt;urn:example:transfer:1&lt;/id&gt;
 &lt;link rel=&quot;src&quot; href=&quot;...&quot;/&gt;
 &lt;link rel=&quot;target&quot; href=&quot;...&quot;/&gt;
 &lt;amount&gt;100&lt;/amount&gt;
&lt;/transfer&gt;

But this does not tell me anything about the &quot;state of the application&quot; viz., the &quot;state of the interactions between the server and this client&quot;. The state of the application could be that the transfer is pending, and the client will need to check some other link to get the status of the transfer. This could be represented by including a link to that status resource in the above representation. At the end, we have links, but IMO, what they are meant to represent is a key point.

Consider a different example. A client is submitting a POST to create a new customer resource. Due to some peculiar implementation details, the server wants the user to verify this process by submitting a one-time verification link. 

201 Created
Location: http://blah

&lt;customer&gt;
...
  &lt;link rel=&quot;verify&quot; href=&quot;http://blah?adasd312da&quot;/&gt;
&lt;/customer&gt;

The link here indicates the state of the application, i.e, the process is not done, and the user needs to activate the link with relation &quot;verify&quot;.

To sum up, representations contain both the (persistent) state of the resource as well as the state of the application (i.e., the interactions).</description>
		<content:encoded><![CDATA[<p>I don&#8217;t want to say that this is &#8220;poisoning developer minds&#8221;, but explaining that representations are akin to some value objects is a bit misleading. Here is why.</p>
<p>Let me consider a bank transfer example, where we identified a bank transfer as a resource. The usual flow is as follows:</p>
<p>POST /transfer &#8212;&#8211;&gt; 201 Created, Location: <a href="http://example.org/transfer/1" rel="nofollow">http://example.org/transfer/1</a></p>
<p>Now, when a client submits a &#8220;GET /transfer/1&#8243;, what should the server return? In the value object model, it would return some serialized form of that object, e.g., as in</p>
<p>&lt;transfer&gt;<br />
 &lt;id>urn:example:transfer:1&lt;/id&gt;<br />
 &lt;link rel=&#8221;src&#8221; href=&#8221;&#8230;&#8221;/&gt;<br />
 &lt;link rel=&#8221;target&#8221; href=&#8221;&#8230;&#8221;/&gt;<br />
 &lt;amount>100&lt;/amount&gt;<br />
&lt;/transfer&gt;</p>
<p>But this does not tell me anything about the &#8220;state of the application&#8221; viz., the &#8220;state of the interactions between the server and this client&#8221;. The state of the application could be that the transfer is pending, and the client will need to check some other link to get the status of the transfer. This could be represented by including a link to that status resource in the above representation. At the end, we have links, but IMO, what they are meant to represent is a key point.</p>
<p>Consider a different example. A client is submitting a POST to create a new customer resource. Due to some peculiar implementation details, the server wants the user to verify this process by submitting a one-time verification link. </p>
<p>201 Created<br />
Location: <a href="http://blah" rel="nofollow">http://blah</a></p>
<p>&lt;customer&gt;<br />
&#8230;<br />
  &lt;link rel=&#8221;verify&#8221; href=&#8221;http://blah?adasd312da&#8221;/&gt;<br />
&lt;/customer&gt;</p>
<p>The link here indicates the state of the application, i.e, the process is not done, and the user needs to activate the link with relation &#8220;verify&#8221;.</p>
<p>To sum up, representations contain both the (persistent) state of the resource as well as the state of the application (i.e., the interactions).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bill Burke</title>
		<link>http://www.subbu.org/blog/2008/10/explaining-state-in-hateoas/comment-page-1#comment-7952</link>
		<dc:creator>Bill Burke</dc:creator>
		<pubDate>Thu, 23 Oct 2008 21:14:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.subbu.org/?p=503#comment-7952</guid>
		<description>Although using the common example of HTML passed back with a FORM in it to describe HATEOAS is a good start, I find that it leaves people still scratching their heads.  Its like trying to convince somebody Number theory is so cool by stating &quot;1 + 1 = 2!&quot;  Its just too obvious its invisible.

I&#039;ve explained HATEOAS with this analogy to Java developers.  Imagine, a Java Swing app passing value objects to a remote Hibernate service and merging the changes.  Instead of Java objects are your value objects, think of XML or JSON.  Now add the idea of embedding links into your XML or JSON that tell you where you can edit the service that represents these value objects, or links to other services related to this data.

Maybe I&#039;m poisoning developer minds with impure thoughts, I don&#039;t know... :)</description>
		<content:encoded><![CDATA[<p>Although using the common example of HTML passed back with a FORM in it to describe HATEOAS is a good start, I find that it leaves people still scratching their heads.  Its like trying to convince somebody Number theory is so cool by stating &#8220;1 + 1 = 2!&#8221;  Its just too obvious its invisible.</p>
<p>I&#8217;ve explained HATEOAS with this analogy to Java developers.  Imagine, a Java Swing app passing value objects to a remote Hibernate service and merging the changes.  Instead of Java objects are your value objects, think of XML or JSON.  Now add the idea of embedding links into your XML or JSON that tell you where you can edit the service that represents these value objects, or links to other services related to this data.</p>
<p>Maybe I&#8217;m poisoning developer minds with impure thoughts, I don&#8217;t know&#8230; :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Keith Gaughan</title>
		<link>http://www.subbu.org/blog/2008/10/explaining-state-in-hateoas/comment-page-1#comment-7744</link>
		<dc:creator>Keith Gaughan</dc:creator>
		<pubDate>Wed, 22 Oct 2008 22:51:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.subbu.org/?p=503#comment-7744</guid>
		<description>I think application state can be boiled down even further than that. The way I try to explain it is by saying that it&#039;s where you are and how you got there. Then I&#039;d use an example of it at work in a regular website, but that first bit (&quot;it&#039;s where you are and how you got there&quot;) is the critical thing to understand; the explanation just reifies it.</description>
		<content:encoded><![CDATA[<p>I think application state can be boiled down even further than that. The way I try to explain it is by saying that it&#8217;s where you are and how you got there. Then I&#8217;d use an example of it at work in a regular website, but that first bit (&#8221;it&#8217;s where you are and how you got there&#8221;) is the critical thing to understand; the explanation just reifies it.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
