<?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: Classifying the CouchDB API</title>
	<atom:link href="http://www.nordsc.com/blog/?feed=rss2&#038;p=404" rel="self" type="application/rss+xml" />
	<link>http://www.nordsc.com/blog/?p=404</link>
	<description></description>
	<lastBuildDate>Mon, 30 Aug 2010 14:39:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Scott Banwart&#39;s Blog &#187; Blog Archive &#187; Distributed Weekly 40</title>
		<link>http://www.nordsc.com/blog/?p=404#comment-168</link>
		<dc:creator>Scott Banwart&#39;s Blog &#187; Blog Archive &#187; Distributed Weekly 40</dc:creator>
		<pubDate>Fri, 05 Mar 2010 14:51:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.nordsc.com/blog/?p=404#comment-168</guid>
		<description>[...] Classifying the CouchDB API [...]</description>
		<content:encoded><![CDATA[<p>[...] Classifying the CouchDB API [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: This Week in REST – Volume 5 (Feb 22 2010 – Feb 28 2010) &#171; This week in REST</title>
		<link>http://www.nordsc.com/blog/?p=404#comment-158</link>
		<dc:creator>This Week in REST – Volume 5 (Feb 22 2010 – Feb 28 2010) &#171; This week in REST</dc:creator>
		<pubDate>Mon, 01 Mar 2010 08:34:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.nordsc.com/blog/?p=404#comment-158</guid>
		<description>[...] by Grig Gheorghiu. Half overview of HTTP and rest, half overview of Restish framework. Classifying the CouchDB API &#8211; An evaluation of the RESTfulness of the CouchDB API. (by Jan [...]</description>
		<content:encoded><![CDATA[<p>[...] by Grig Gheorghiu. Half overview of HTTP and rest, half overview of Restish framework. Classifying the CouchDB API &#8211; An evaluation of the RESTfulness of the CouchDB API. (by Jan [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jan</title>
		<link>http://www.nordsc.com/blog/?p=404#comment-152</link>
		<dc:creator>Jan</dc:creator>
		<pubDate>Sat, 27 Feb 2010 21:53:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.nordsc.com/blog/?p=404#comment-152</guid>
		<description>Hi Jan,

Show and List functions let you transform documents and view results into whatever you want it to be. You could add hyperlinks for resource discovery.

http://wiki.apache.org/couchdb/Formatting_with_Show_and_List

The rewriter and vhosts don&#039;t have documentation yet (they were added in the last weeks). In short, the rewriter lets you map any url /db/_design/doc/_rewrite/* to whatever else. This alone doesn&#039;t help much, but in combination with vhosts, you gain full control over the CouchDB URL space. It simply maps http://example.com/ to /db/_design/doc/_rewrite based on the request Host header.

Together with shows and lists you can make fully-hypertexty CouchDB.

For the content-type, both is correct :) CouchDB assumes a &quot;parse this as JSON&quot; on the client and then the client can do whatever; there is no implied semantics. It does though reserve the _* namespace for properties (_id, _rev. etc). So application/json+couchdb would be more appropriate, but that wouldn&#039;t fly with any clients in the wild.

(even worse theoretically, by default CouchDB sends text/plain with the JSON so browsers render the JSON instead of offering a download. Only if you request with application/json, you get that content type. But this is a major practicality win over the &quot;pure&quot; solution)

Cheers
Jan
--</description>
		<content:encoded><![CDATA[<p>Hi Jan,</p>
<p>Show and List functions let you transform documents and view results into whatever you want it to be. You could add hyperlinks for resource discovery.</p>
<p><a href="http://wiki.apache.org/couchdb/Formatting_with_Show_and_List" rel="nofollow">http://wiki.apache.org/couchdb/Formatting_with_Show_and_List</a></p>
<p>The rewriter and vhosts don&#8217;t have documentation yet (they were added in the last weeks). In short, the rewriter lets you map any url /db/_design/doc/_rewrite/* to whatever else. This alone doesn&#8217;t help much, but in combination with vhosts, you gain full control over the CouchDB URL space. It simply maps <a href="http://example.com/" rel="nofollow">http://example.com/</a> to /db/_design/doc/_rewrite based on the request Host header.</p>
<p>Together with shows and lists you can make fully-hypertexty CouchDB.</p>
<p>For the content-type, both is correct :) CouchDB assumes a &#8220;parse this as JSON&#8221; on the client and then the client can do whatever; there is no implied semantics. It does though reserve the _* namespace for properties (_id, _rev. etc). So application/json+couchdb would be more appropriate, but that wouldn&#8217;t fly with any clients in the wild.</p>
<p>(even worse theoretically, by default CouchDB sends text/plain with the JSON so browsers render the JSON instead of offering a download. Only if you request with application/json, you get that content type. But this is a major practicality win over the &#8220;pure&#8221; solution)</p>
<p>Cheers<br />
Jan<br />
&#8211;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jan Algermissen</title>
		<link>http://www.nordsc.com/blog/?p=404#comment-151</link>
		<dc:creator>Jan Algermissen</dc:creator>
		<pubDate>Sat, 27 Feb 2010 21:35:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.nordsc.com/blog/?p=404#comment-151</guid>
		<description>Hi Jan,
can you provide a documentation pointer to &quot;using a combination of show and list functions, the rewriter and vhosts&quot;? Sounds interesting.

Regarding the message self-descriptiveness: When you use a generic format, understanding the processing intent requires out of band knowledge (unless the intent really only is: &quot;parse this as JSON&quot;. IOW, the real meaning of the message can not be inferred from the message itself.

However, the question is whether that is a useful requirement for database interactions because the database is not a service with specific application semantics.

It is an interesting point because you could place all the necessary processing semantics into headers and just treat the body as somewhat opaque payload (like a PDF is for example). Let me look at the hypermedia support you mentioned, that seems related.

Thanks,
Jan</description>
		<content:encoded><![CDATA[<p>Hi Jan,<br />
can you provide a documentation pointer to &#8220;using a combination of show and list functions, the rewriter and vhosts&#8221;? Sounds interesting.</p>
<p>Regarding the message self-descriptiveness: When you use a generic format, understanding the processing intent requires out of band knowledge (unless the intent really only is: &#8220;parse this as JSON&#8221;. IOW, the real meaning of the message can not be inferred from the message itself.</p>
<p>However, the question is whether that is a useful requirement for database interactions because the database is not a service with specific application semantics.</p>
<p>It is an interesting point because you could place all the necessary processing semantics into headers and just treat the body as somewhat opaque payload (like a PDF is for example). Let me look at the hypermedia support you mentioned, that seems related.</p>
<p>Thanks,<br />
Jan</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jan</title>
		<link>http://www.nordsc.com/blog/?p=404#comment-149</link>
		<dc:creator>Jan</dc:creator>
		<pubDate>Sat, 27 Feb 2010 21:24:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.nordsc.com/blog/?p=404#comment-149</guid>
		<description>Hey,

thanks for the great writeup. We&#039;ve had this discussion quite a few times. While out of the box the hypermedia constraint is not adhered, you can make CouchDB a fully self-descriptive hypermedia source using a combination of show and list functions, the rewriter and vhosts.

I don&#039;t really follow the HTTP type II exclusion thing. Would we have to use application/json+couchdbdocument or somesuch?

Either way, both &quot;relaxations&quot; from pure REST evolved out of practical experience.; )

Thanks again!

Cheers
Jan
--</description>
		<content:encoded><![CDATA[<p>Hey,</p>
<p>thanks for the great writeup. We&#8217;ve had this discussion quite a few times. While out of the box the hypermedia constraint is not adhered, you can make CouchDB a fully self-descriptive hypermedia source using a combination of show and list functions, the rewriter and vhosts.</p>
<p>I don&#8217;t really follow the HTTP type II exclusion thing. Would we have to use application/json+couchdbdocument or somesuch?</p>
<p>Either way, both &#8220;relaxations&#8221; from pure REST evolved out of practical experience.; )</p>
<p>Thanks again!</p>
<p>Cheers<br />
Jan<br />
&#8211;</p>
]]></content:encoded>
	</item>
</channel>
</rss>
