couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Wout Mertens <wout.mert...@gmail.com>
Subject %2f vs / in _design vs regular docs?
Date Sat, 07 Mar 2009 08:49:46 GMT
Hi all,

I noticed the following discrepancy: When you try to request a design  
document, and you encode the / as %2F, couchdb will redirect you to a  
URL with %2f decoded to /, which works.

However, for any other documents, you must encode the / as %2f. For  
_view URLs, you must put /. For JSON key values, you can use both.

Examples:
[info] [<0.19011.2>] 127.0.0.1 - - 'GET' /vavoom/_design%2Fmacaddr 301
[info] [<0.19020.2>] 127.0.0.1 - - 'GET' /vavoom/_design/macaddr 304

[info] [<0.19029.2>] 127.0.0.1 - - 'GET' /vavoom/mac/00:50:56:00:02:02  
404
[info] [<0.19029.2>] 127.0.0.1 - - 'GET' /vavoom/mac 
%2f00:50:56:00:02:02 200

[info] [<0.21779.2>] 127.0.0.1 - - 'GET' /vavoom/_view%2fimages%2fall? 
include_docs=true 404
[info] [<0.21807.2>] 127.0.0.1 - - 'GET' /vavoom/_view%2fimages/all? 
include_docs=true 404
[info] [<0.21807.2>] 127.0.0.1 - - 'GET' /vavoom/_view/images%2fall? 
include_docs=true 405
[info] [<0.21807.2>] 127.0.0.1 - - 'GET' /vavoom/_view/images/all? 
include_docs=true 200

[info] [<0.22633.2>] 127.0.0.1 - - 'GET' /vavoom/_all_docs?startkey= 
%22mac/00:50:56:00:02:02%22&limit=1 200
[info] [<0.22633.2>] 127.0.0.1 - - 'GET' /vavoom/_all_docs?startkey= 
%22mac%2f00:50:56:00:02:02%22&limit=1 200

Is there logic behind this? Would it be possible to allow unchanged /  
in keys that are accessed directly?

The reason I ask is that it would be very natural to put the type of a  
document as a prefix to the document. This gives you instant views like
[info] [<0.20301.2>] 127.0.0.1 - - 'GET' /vavoom/_all_docs?startkey= 
%22mac/%22&endkey=%22mac?%22 304
and for a wiki you could have subsections under like _show/wiki/ 
showpage/section/subsection/page

Cheers,

Wout.

Mime
View raw message