<?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: Humble HATEOAS</title>
	<atom:link href="http://www.schuerig.de/michael/blog/index.php/2009/06/04/humble-hateoas/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.schuerig.de/michael/blog/index.php/2009/06/04/humble-hateoas/</link>
	<description>Sentenced to making sense</description>
	<lastBuildDate>Thu, 08 Apr 2010 22:54:36 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Solomon</title>
		<link>http://www.schuerig.de/michael/blog/index.php/2009/06/04/humble-hateoas/comment-page-1/#comment-91793</link>
		<dc:creator>Solomon</dc:creator>
		<pubDate>Fri, 19 Jun 2009 13:18:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.schuerig.de/michael/blog/?p=64#comment-91793</guid>
		<description>I absolutely agree with you that the links themselves have no meaning.  There definitely has to be some contextual information related to the link that the &quot;client&quot; of a REST service needs to understand in order to perform a conversation.

The same problem exists in HTML pages, which are also REST services.  In HTML, the implicit assumption is that a living being is reading the page.  In that context, there&#039;s usually an excellent evolving REST conversation.

The reason I&#039;m bringing HTML into the picture is because HATEOAS wasn&#039;t coined in the context of &quot;RESTful web services.&quot;  It was coined in the context of REST as Roy Fielding understood it in 2000.  Roy Fielding&#039;s context was HTML/HTTP/URI that have people as clients.  In that context you have a rich set of additional information about a URL that the &quot;client&quot; can understand: readable text, images and other cues.

The question still remains as to how to &quot;engineer for [conversation] serendipity&quot; in the context of performing tasks using machine-to-machine conversations with REST APIs.  How can you add more cues that a machine can understand?  I personally find &quot;rel&quot; to be useful, but not expressive enough to define what the link IS; &quot;rel&quot; only describes a relationships between the link and its &quot;parent&quot;.  HTML already has better solutions for the needs of programmatic processing: DOM manipulation based on semantic markup of id and class.

Web sites also employ &quot;Information Architects&quot; whose reponsibility includes assuring that Web sites as a whole meet the needs of every type of system user.  Information Architects assure that each type of task has an appropriate path/conversation through the system.  REST data services should probably be approached the same way.  When publishing an API, one needs to consider the overall notion of guided paths through the functionality.

I think that we&#039;re at a point where we need a bigger focus on the conversational aspects of REST services.  To get there, we probably need better tooling and better &quot;best practices.&quot;</description>
		<content:encoded><![CDATA[<p>I absolutely agree with you that the links themselves have no meaning.  There definitely has to be some contextual information related to the link that the &#8220;client&#8221; of a REST service needs to understand in order to perform a conversation.</p>
<p>The same problem exists in HTML pages, which are also REST services.  In HTML, the implicit assumption is that a living being is reading the page.  In that context, there&#8217;s usually an excellent evolving REST conversation.</p>
<p>The reason I&#8217;m bringing HTML into the picture is because HATEOAS wasn&#8217;t coined in the context of &#8220;RESTful web services.&#8221;  It was coined in the context of REST as Roy Fielding understood it in 2000.  Roy Fielding&#8217;s context was HTML/HTTP/URI that have people as clients.  In that context you have a rich set of additional information about a URL that the &#8220;client&#8221; can understand: readable text, images and other cues.</p>
<p>The question still remains as to how to &#8220;engineer for [conversation] serendipity&#8221; in the context of performing tasks using machine-to-machine conversations with REST APIs.  How can you add more cues that a machine can understand?  I personally find &#8220;rel&#8221; to be useful, but not expressive enough to define what the link IS; &#8220;rel&#8221; only describes a relationships between the link and its &#8220;parent&#8221;.  HTML already has better solutions for the needs of programmatic processing: DOM manipulation based on semantic markup of id and class.</p>
<p>Web sites also employ &#8220;Information Architects&#8221; whose reponsibility includes assuring that Web sites as a whole meet the needs of every type of system user.  Information Architects assure that each type of task has an appropriate path/conversation through the system.  REST data services should probably be approached the same way.  When publishing an API, one needs to consider the overall notion of guided paths through the functionality.</p>
<p>I think that we&#8217;re at a point where we need a bigger focus on the conversational aspects of REST services.  To get there, we probably need better tooling and better &#8220;best practices.&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stefan Tilkov</title>
		<link>http://www.schuerig.de/michael/blog/index.php/2009/06/04/humble-hateoas/comment-page-1/#comment-91784</link>
		<dc:creator>Stefan Tilkov</dc:creator>
		<pubDate>Mon, 08 Jun 2009 05:32:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.schuerig.de/michael/blog/?p=64#comment-91784</guid>
		<description>Link relations don&#039;t yet formally crosscut media types. One can imagine what this would look like, see http://ietfreport.isoc.org/idref/draft-nottingham-http-link-header/

But this is all very much work in progress right now.</description>
		<content:encoded><![CDATA[<p>Link relations don&#8217;t yet formally crosscut media types. One can imagine what this would look like, see <a href="http://ietfreport.isoc.org/idref/draft-nottingham-http-link-header/" rel="nofollow">http://ietfreport.isoc.org/idref/draft-nottingham-http-link-header/</a></p>
<p>But this is all very much work in progress right now.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: michael</title>
		<link>http://www.schuerig.de/michael/blog/index.php/2009/06/04/humble-hateoas/comment-page-1/#comment-91783</link>
		<dc:creator>michael</dc:creator>
		<pubDate>Sun, 07 Jun 2009 21:11:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.schuerig.de/michael/blog/?p=64#comment-91783</guid>
		<description>re 1) Do link relations crosscut media types? I understand you as saying that they do. However, then link relations, too, have to be defined in some way and they need to be pointed out to the client. Something like

&lt;code&gt;&lt;pre&gt;
Content-Type: application/mymediatype+mylinkrelations+xml
&lt;/pre&gt;&lt;/code&gt;

I&#039;m not against the general idea, but I&#039;m not sure what it would look like in practice.

re 2) Forms are probably great if you&#039;re using an XML-based media type. Lately, I&#039;ve been using JSON, not XML, and AFAIK there is no equivalent to forms for JSON. As I needed parameterized queries, I resorted to (a simplified variant of JSON Query). Thus, I&#039;m guilty of pasting together URLs, but I reckon it&#039;s only half bad because I use a generic formalism.</description>
		<content:encoded><![CDATA[<p>re 1) Do link relations crosscut media types? I understand you as saying that they do. However, then link relations, too, have to be defined in some way and they need to be pointed out to the client. Something like</p>
<p><code>
<pre>
Content-Type: application/mymediatype+mylinkrelations+xml
</pre>
<p></code></p>
<p>I&#8217;m not against the general idea, but I&#8217;m not sure what it would look like in practice.</p>
<p>re 2) Forms are probably great if you&#8217;re using an XML-based media type. Lately, I&#8217;ve been using JSON, not XML, and AFAIK there is no equivalent to forms for JSON. As I needed parameterized queries, I resorted to (a simplified variant of JSON Query). Thus, I&#8217;m guilty of pasting together URLs, but I reckon it&#8217;s only half bad because I use a generic formalism.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stefan Tilkov</title>
		<link>http://www.schuerig.de/michael/blog/index.php/2009/06/04/humble-hateoas/comment-page-1/#comment-91782</link>
		<dc:creator>Stefan Tilkov</dc:creator>
		<pubDate>Sun, 07 Jun 2009 20:07:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.schuerig.de/michael/blog/?p=64#comment-91782</guid>
		<description>Good post. Two comments: 1) Instead of inventing new media types, one can invent new link relations in existing formats. 2) Forms are another way hypermedia is used – and in fact they&#039;re far more interesting for complex interactions. I&#039;m not aware of anybody who has explored this in detail (Mark Baker once started with RDFforms, but that didn&#039;t go anywhere AFAIK).</description>
		<content:encoded><![CDATA[<p>Good post. Two comments: 1) Instead of inventing new media types, one can invent new link relations in existing formats. 2) Forms are another way hypermedia is used – and in fact they&#8217;re far more interesting for complex interactions. I&#8217;m not aware of anybody who has explored this in detail (Mark Baker once started with RDFforms, but that didn&#8217;t go anywhere AFAIK).</p>
]]></content:encoded>
	</item>
</channel>
</rss>

