You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@couchdb.apache.org by Aliaksandr Barysiuk <a....@gmail.com> on 2012/11/30 14:53:44 UTC

Rewrite adds quotes to parameters

Hello,

I'm trying to create a rewrite rule for my view that looks like: /myview/3/["1","2"]/["1","4"].
Rewrite rule is:
{
     "from": "/myview/:group_level/:startkey/:endkey",
     "to":   "/path_to_db_and_design_doc/_view/myview",
     "query": {
         "group_level" : ":group_level",
         "startkey"    : ":startkey",
         "endkey"      : ":endkey"
}

The issue is that this rewire rule adds extra quotes to every parameter in the query.

Logged examples:

1) without rewrite (myview?group_level=3&startkey["1","2"]&endkey=["1","4"])

/myview?endkey=%5B%221%22%2C%224%22%5D&startkey%5B%221%22%2C%222%22%5D=&group_level=3

2) with rewrite (myview/3/["1","2"]/["1","4"])

/myview?startkey=%22%5B%5C%221%27%2C%5C%222%5C%22%5D%22&endkey=%22%5B%5C%221%5C%22%2C%5C%224%5C%22%5D%22&group_level=3

So no results in second case.

Is there any way to avoid this extra quotes?

Thank's

Alex


Re: Rewrite adds quotes to parameters

Posted by Benoit Chesneau <bc...@gmail.com>.
l
On Nov 30, 2012 2:54 PM, "Aliaksandr Barysiuk" <a....@gmail.com> wrote:

> Hello,
>
> I'm trying to create a rewrite rule for my view that looks like:
> /myview/3/["1","2"]/["1","4"].
> Rewrite rule is:
> {
>     "from": "/myview/:group_level/:**startkey/:endkey",
>     "to":   "/path_to_db_and_design_doc/_**view/myview",
>     "query": {
>         "group_level" : ":group_level",
>         "startkey"    : ":startkey",
>         "endkey"      : ":endkey"
> }
>


There is a special case for view parameters and it isn't expected to pass
them as parameter in current implementation of the rewriter:

https://github.com/benoitc/couchdb/blob/master/src/couchdb/couch_httpd_rewrite.erl#L286

Instead I would suggest you to do rename the variable name or just using
them as query params.

- benoit