<?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: Interface included</title>
	<atom:link href="http://www.markbaker.ca/blog/2008/10/interface-included/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.markbaker.ca/blog/2008/10/interface-included/</link>
	<description>Celebrating the power of the Web</description>
	<lastBuildDate>Fri, 26 Aug 2011 20:00:51 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
	<item>
		<title>By: Mark</title>
		<link>http://www.markbaker.ca/blog/2008/10/interface-included/comment-page-1/#comment-1523</link>
		<dc:creator>Mark</dc:creator>
		<pubDate>Fri, 26 Aug 2011 20:00:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.markbaker.ca/blog/?p=1994#comment-1523</guid>
		<description>Kevin - by &quot;rel type&quot; there I mean the same thing Roy means when he says &quot;relation name&quot;.  Perhaps that&#039;s a poor choice of terminology on my part, but it&#039;s how I think about relations (and it seems you do too). That&#039;s fine IMO, as long as we recognize that there&#039;s no connection between the relation and resource types, i.e. for that previous example, using an &quot;author&quot; relation is *not* a declaration that the publisher believes that the target resource has a resource type of &quot;author&quot;, it is purely a statement about the relationship that exists between those two resources.

You can define your own rel types too of course, but that comes with a cost, so try to minimize that cost by registering any generally useful ones, and reusing existing ones wherever possible including when you&#039;re also using a custom one (as a fallback). As an example of the latter case, if you were writing a music app, instead of just saying rel=&quot;composer&quot;, you could use rel=&quot;composer author&quot;.</description>
		<content:encoded><![CDATA[<p>Kevin &#8211; by &#8220;rel type&#8221; there I mean the same thing Roy means when he says &#8220;relation name&#8221;.  Perhaps that&#8217;s a poor choice of terminology on my part, but it&#8217;s how I think about relations (and it seems you do too). That&#8217;s fine IMO, as long as we recognize that there&#8217;s no connection between the relation and resource types, i.e. for that previous example, using an &#8220;author&#8221; relation is *not* a declaration that the publisher believes that the target resource has a resource type of &#8220;author&#8221;, it is purely a statement about the relationship that exists between those two resources.</p>
<p>You can define your own rel types too of course, but that comes with a cost, so try to minimize that cost by registering any generally useful ones, and reusing existing ones wherever possible including when you&#8217;re also using a custom one (as a fallback). As an example of the latter case, if you were writing a music app, instead of just saying rel=&#8221;composer&#8221;, you could use rel=&#8221;composer author&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kevin Peno</title>
		<link>http://www.markbaker.ca/blog/2008/10/interface-included/comment-page-1/#comment-1522</link>
		<dc:creator>Kevin Peno</dc:creator>
		<pubDate>Thu, 25 Aug 2011 20:47:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.markbaker.ca/blog/?p=1994#comment-1522</guid>
		<description>@Mark, I know it has been awhile since this post was originally posted, but I had a comment/question in regards to your last reply.

From what I read on Roy&#039;s post, comments, etc, typing of a resource seems to be a big part of the confusion (what is this &quot;thing&quot; you are referencing), and perhaps mine as well. While I&#039;d agree that the type used in the server implementation vs. the client implementation doesn&#039;t matter, you are indeed typing resources, per the quotes below. Is &quot;author&quot;, given in your example, not a type? Why, if this is the case, can the 2 not be mixed? Why can I not define my own types extending on standards (or can I?)? Am I missing something?

Roy: &quot;The only types that are significant to a client are the current representation’s media type and standardized relation names.&quot;

You (last comment): &quot;that shouldn’t be the case if the rel type is well specified. [...] consider what it would mean to use the registered rel value “author”&quot;.</description>
		<content:encoded><![CDATA[<p>@Mark, I know it has been awhile since this post was originally posted, but I had a comment/question in regards to your last reply.</p>
<p>From what I read on Roy&#8217;s post, comments, etc, typing of a resource seems to be a big part of the confusion (what is this &#8220;thing&#8221; you are referencing), and perhaps mine as well. While I&#8217;d agree that the type used in the server implementation vs. the client implementation doesn&#8217;t matter, you are indeed typing resources, per the quotes below. Is &#8220;author&#8221;, given in your example, not a type? Why, if this is the case, can the 2 not be mixed? Why can I not define my own types extending on standards (or can I?)? Am I missing something?</p>
<p>Roy: &#8220;The only types that are significant to a client are the current representation’s media type and standardized relation names.&#8221;</p>
<p>You (last comment): &#8220;that shouldn’t be the case if the rel type is well specified. [...] consider what it would mean to use the registered rel value “author”&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark</title>
		<link>http://www.markbaker.ca/blog/2008/10/interface-included/comment-page-1/#comment-1521</link>
		<dc:creator>Mark</dc:creator>
		<pubDate>Sun, 21 Aug 2011 02:10:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.markbaker.ca/blog/?p=1994#comment-1521</guid>
		<description>You&#039;re on the right track, Brian, but I&#039;m not sure how you conclude &quot;but I don&#039;t know what that means&quot;; that shouldn&#039;t be the case if the rel type is well specified.  Instead of the hypothetically ambiguous &quot;related&quot; rel type, consider what it would mean to use the registered rel value &quot;author&quot;; you would know that the Foo resource is declaring that it considers the Bar resource to be its author.</description>
		<content:encoded><![CDATA[<p>You&#8217;re on the right track, Brian, but I&#8217;m not sure how you conclude &#8220;but I don&#8217;t know what that means&#8221;; that shouldn&#8217;t be the case if the rel type is well specified.  Instead of the hypothetically ambiguous &#8220;related&#8221; rel type, consider what it would mean to use the registered rel value &#8220;author&#8221;; you would know that the Foo resource is declaring that it considers the Bar resource to be its author.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brian Hazzard</title>
		<link>http://www.markbaker.ca/blog/2008/10/interface-included/comment-page-1/#comment-1517</link>
		<dc:creator>Brian Hazzard</dc:creator>
		<pubDate>Thu, 18 Aug 2011 03:05:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.markbaker.ca/blog/?p=1994#comment-1517</guid>
		<description>oh darn... it cleaned up the response in my example. I&#039;ll do it in json instead:

{
  links: [
    {
      &quot;rel&quot;: &quot;related&quot;,
      &quot;method&quot;: &quot;GET&quot;,
      &quot;type&quot;: &quot;application/vnd.custom.bar+json&quot;,
      &quot;href&quot;: &quot;/some/url&quot;
    }
  ]
}

So I know that I can GET a related Bar... but I don&#039;t know what that means, unless the relationship of a Foo to a Bar is prespecified.</description>
		<content:encoded><![CDATA[<p>oh darn&#8230; it cleaned up the response in my example. I&#8217;ll do it in json instead:</p>
<p>{<br />
  links: [<br />
    {<br />
      "rel": "related",<br />
      "method": "GET",<br />
      "type": "application/vnd.custom.bar+json",<br />
      "href": "/some/url"<br />
    }<br />
  ]<br />
}</p>
<p>So I know that I can GET a related Bar&#8230; but I don&#8217;t know what that means, unless the relationship of a Foo to a Bar is prespecified.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brian Hazzard</title>
		<link>http://www.markbaker.ca/blog/2008/10/interface-included/comment-page-1/#comment-1516</link>
		<dc:creator>Brian Hazzard</dc:creator>
		<pubDate>Thu, 18 Aug 2011 03:02:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.markbaker.ca/blog/?p=1994#comment-1516</guid>
		<description>I&#039;m not entirely sure I understand how resource relationships can be made 100% discoverable. Let me use a concrete example:

I have a Foo, and I do a get on it. Among the options for state transitions I have available is a link to get a Bar.

Now assume that my client knows what a Foo is, and it knows what a Bar is... how does it know what this Bar MEANS in relation to this Foo?

I considered rel tags, so something like this:

HTTP/1.1 200 OK
Content-Type application/vnd.custom.foo+xml


  


But, that doesn&#039;t tell me anything, unless we assume that the semantic meaning of this particular link is implicitly part of the definition of application/vnd.custom.foo+xml. And if that is true... then we have &quot;prespecified&quot; the relationship.</description>
		<content:encoded><![CDATA[<p>I&#8217;m not entirely sure I understand how resource relationships can be made 100% discoverable. Let me use a concrete example:</p>
<p>I have a Foo, and I do a get on it. Among the options for state transitions I have available is a link to get a Bar.</p>
<p>Now assume that my client knows what a Foo is, and it knows what a Bar is&#8230; how does it know what this Bar MEANS in relation to this Foo?</p>
<p>I considered rel tags, so something like this:</p>
<p>HTTP/1.1 200 OK<br />
Content-Type application/vnd.custom.foo+xml</p>
<p>But, that doesn&#8217;t tell me anything, unless we assume that the semantic meaning of this particular link is implicitly part of the definition of application/vnd.custom.foo+xml. And if that is true&#8230; then we have &#8220;prespecified&#8221; the relationship.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joran</title>
		<link>http://www.markbaker.ca/blog/2008/10/interface-included/comment-page-1/#comment-1369</link>
		<dc:creator>Joran</dc:creator>
		<pubDate>Thu, 23 Oct 2008 18:09:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.markbaker.ca/blog/?p=1994#comment-1369</guid>
		<description>Thanks Mark.</description>
		<content:encoded><![CDATA[<p>Thanks Mark.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: admin</title>
		<link>http://www.markbaker.ca/blog/2008/10/interface-included/comment-page-1/#comment-1368</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Wed, 22 Oct 2008 20:32:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.markbaker.ca/blog/?p=1994#comment-1368</guid>
		<description>I would suggest using a new media type that is built with JSON, but specifies where URIs go.</description>
		<content:encoded><![CDATA[<p>I would suggest using a new media type that is built with JSON, but specifies where URIs go.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joran</title>
		<link>http://www.markbaker.ca/blog/2008/10/interface-included/comment-page-1/#comment-1367</link>
		<dc:creator>Joran</dc:creator>
		<pubDate>Wed, 22 Oct 2008 20:13:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.markbaker.ca/blog/?p=1994#comment-1367</guid>
		<description>Thanks Mark,

I also read Roy&#039;s post, and it was (rightfully) disciplinarian.

I want to get my API inline with REST completely. Most of the basics are covered (I think): keeping resources, methods, content types separate. GET, POST, PUT, DELETE. Digest Authentication where necessary.

My concern, and what I&#039;m trying to find out more about, and where I don&#039;t meet Roy&#039;s standard, is when it comes to make resource relationships and URI&#039;s discoverable. I.E. hypertext linking etc.

My representations are all in either JSON or XML. Obviously putting any kind of URI link in a JSON object is NOT discoverable. So it has to go in the header right? What would you suggest? More explanation regarding this subject would be very helpful. Forgive me if I&#039;m asking for something you&#039;ve already published.</description>
		<content:encoded><![CDATA[<p>Thanks Mark,</p>
<p>I also read Roy&#8217;s post, and it was (rightfully) disciplinarian.</p>
<p>I want to get my API inline with REST completely. Most of the basics are covered (I think): keeping resources, methods, content types separate. GET, POST, PUT, DELETE. Digest Authentication where necessary.</p>
<p>My concern, and what I&#8217;m trying to find out more about, and where I don&#8217;t meet Roy&#8217;s standard, is when it comes to make resource relationships and URI&#8217;s discoverable. I.E. hypertext linking etc.</p>
<p>My representations are all in either JSON or XML. Obviously putting any kind of URI link in a JSON object is NOT discoverable. So it has to go in the header right? What would you suggest? More explanation regarding this subject would be very helpful. Forgive me if I&#8217;m asking for something you&#8217;ve already published.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

