You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@couchdb.apache.org by "Michel Legnered (JIRA)" <ji...@apache.org> on 2011/01/09 15:36:45 UTC

[jira] Created: (COUCHDB-1017) HTTP Rewrite Handler: Rewriting strings in queries

HTTP Rewrite Handler: Rewriting strings in queries
--------------------------------------------------

                 Key: COUCHDB-1017
                 URL: https://issues.apache.org/jira/browse/COUCHDB-1017
             Project: CouchDB
          Issue Type: Improvement
          Components: HTTP Interface
    Affects Versions: 1.0.1
            Reporter: Michel Legnered
            Priority: Minor


I have this rewrite:
{
	"from": "/u/:key",
	"to": "_list/pouch/user-items",
	"method": "GET",
	"query": {"key": ":key"}
}
..where the view returns: {"error":"bad_request","reason":"invalid UTF-8 JSON"}. The view query looks like this ?key=somekey, but for the view to succeed "somekey" need to be in double quotes.

Maybe one could improve the rewriter's behavior for rewriting strings in queries? 

Here is one workaround:
{
	"from": "/u/*",
	"to": "_list/pouch/user-items",
	"method": "GET",
	"query": {
		"startkey": ["*"],
		"endkey": ["*", {}]
	}
},

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (COUCHDB-1017) HTTP Rewrite Handler: Rewriting strings in queries

Posted by "Michel Legnered (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/COUCHDB-1017?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michel Legnered updated COUCHDB-1017:
-------------------------------------

    Description: 
I have this rewrite:
{
	"from": "/u/:key",
	"to": "_list/pouch/user-items",
	"method": "GET",
	"query": {"key": ":key"}
}
..where the view returns: {"error":"bad_request","reason":"invalid UTF-8 JSON"}. The view query looks like this ?key=somekey, but for the view to succeed "somekey" need to be in double quotes.

Maybe one could improve the rewriter's behavior for rewriting strings in queries? 

Here is one workaround:
{
	"from": "/u/:startkey",
	"to": "_list/pouch/user-items",
	"method": "GET",
	"query": {
		"startkey": [":startkey"],
		"endkey": [":startkey", {}]
	}
},

  was:
I have this rewrite:
{
	"from": "/u/:key",
	"to": "_list/pouch/user-items",
	"method": "GET",
	"query": {"key": ":key"}
}
..where the view returns: {"error":"bad_request","reason":"invalid UTF-8 JSON"}. The view query looks like this ?key=somekey, but for the view to succeed "somekey" need to be in double quotes.

Maybe one could improve the rewriter's behavior for rewriting strings in queries? 

Here is one workaround:
{
	"from": "/u/*",
	"to": "_list/pouch/user-items",
	"method": "GET",
	"query": {
		"startkey": ["*"],
		"endkey": ["*", {}]
	}
},


> HTTP Rewrite Handler: Rewriting strings in queries
> --------------------------------------------------
>
>                 Key: COUCHDB-1017
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1017
>             Project: CouchDB
>          Issue Type: Improvement
>          Components: HTTP Interface
>    Affects Versions: 1.0.1
>            Reporter: Michel Legnered
>            Priority: Minor
>
> I have this rewrite:
> {
> 	"from": "/u/:key",
> 	"to": "_list/pouch/user-items",
> 	"method": "GET",
> 	"query": {"key": ":key"}
> }
> ..where the view returns: {"error":"bad_request","reason":"invalid UTF-8 JSON"}. The view query looks like this ?key=somekey, but for the view to succeed "somekey" need to be in double quotes.
> Maybe one could improve the rewriter's behavior for rewriting strings in queries? 
> Here is one workaround:
> {
> 	"from": "/u/:startkey",
> 	"to": "_list/pouch/user-items",
> 	"method": "GET",
> 	"query": {
> 		"startkey": [":startkey"],
> 		"endkey": [":startkey", {}]
> 	}
> },

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] [Commented] (COUCHDB-1017) HTTP Rewrite Handler: Rewriting strings in queries

Posted by "Benoit Chesneau (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/COUCHDB-1017?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13032933#comment-13032933 ] 

Benoit Chesneau commented on COUCHDB-1017:
------------------------------------------

should be fixed in 1.1. Let me know.

> HTTP Rewrite Handler: Rewriting strings in queries
> --------------------------------------------------
>
>                 Key: COUCHDB-1017
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1017
>             Project: CouchDB
>          Issue Type: Improvement
>          Components: HTTP Interface
>    Affects Versions: 1.0.1
>            Reporter: Michel Legnered
>            Assignee: Benoit Chesneau
>            Priority: Minor
>
> I have this rewrite:
> {
> 	"from": "/u/:key",
> 	"to": "_list/pouch/user-items",
> 	"method": "GET",
> 	"query": {"key": ":key"}
> }
> ..where the view returns: {"error":"bad_request","reason":"invalid UTF-8 JSON"}. The view query looks like this ?key=somekey, but for the view to succeed "somekey" need to be in double quotes.
> Maybe one could improve the rewriter's behavior for rewriting strings in queries? 
> Here is one workaround:
> {
> 	"from": "/u/:startkey",
> 	"to": "_list/pouch/user-items",
> 	"method": "GET",
> 	"query": {
> 		"startkey": [":startkey"],
> 		"endkey": [":startkey", {}]
> 	}
> },

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (COUCHDB-1017) HTTP Rewrite Handler: Rewriting strings in queries

Posted by "Markus Barchfeld (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/COUCHDB-1017?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13041309#comment-13041309 ] 

Markus Barchfeld commented on COUCHDB-1017:
-------------------------------------------

Thanks for looking into it. However, I have quite the reverse case: calling a view with a hierarchical key does not work with quotes.

For example startkey=[2008,08] works fine but startkey="[2008,08]" does not work at all. 

Is there a way how I could avoid setting the quotes? Or just any workaround how I could rewrite the above example from "myview/2008/08"?

Thanks

> HTTP Rewrite Handler: Rewriting strings in queries
> --------------------------------------------------
>
>                 Key: COUCHDB-1017
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1017
>             Project: CouchDB
>          Issue Type: Improvement
>          Components: HTTP Interface
>    Affects Versions: 1.0.1
>            Reporter: Michel Legnered
>            Assignee: Benoit Chesneau
>            Priority: Minor
>
> I have this rewrite:
> {
> 	"from": "/u/:key",
> 	"to": "_list/pouch/user-items",
> 	"method": "GET",
> 	"query": {"key": ":key"}
> }
> ..where the view returns: {"error":"bad_request","reason":"invalid UTF-8 JSON"}. The view query looks like this ?key=somekey, but for the view to succeed "somekey" need to be in double quotes.
> Maybe one could improve the rewriter's behavior for rewriting strings in queries? 
> Here is one workaround:
> {
> 	"from": "/u/:startkey",
> 	"to": "_list/pouch/user-items",
> 	"method": "GET",
> 	"query": {
> 		"startkey": [":startkey"],
> 		"endkey": [":startkey", {}]
> 	}
> },

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] Commented: (COUCHDB-1017) HTTP Rewrite Handler: Rewriting strings in queries

Posted by "Benoit Chesneau (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/COUCHDB-1017?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12979341#action_12979341 ] 

Benoit Chesneau commented on COUCHDB-1017:
------------------------------------------

what is the source url ?, can you paste couchdb log here too ?

> HTTP Rewrite Handler: Rewriting strings in queries
> --------------------------------------------------
>
>                 Key: COUCHDB-1017
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1017
>             Project: CouchDB
>          Issue Type: Improvement
>          Components: HTTP Interface
>    Affects Versions: 1.0.1
>            Reporter: Michel Legnered
>            Priority: Minor
>
> I have this rewrite:
> {
> 	"from": "/u/:key",
> 	"to": "_list/pouch/user-items",
> 	"method": "GET",
> 	"query": {"key": ":key"}
> }
> ..where the view returns: {"error":"bad_request","reason":"invalid UTF-8 JSON"}. The view query looks like this ?key=somekey, but for the view to succeed "somekey" need to be in double quotes.
> Maybe one could improve the rewriter's behavior for rewriting strings in queries? 
> Here is one workaround:
> {
> 	"from": "/u/:startkey",
> 	"to": "_list/pouch/user-items",
> 	"method": "GET",
> 	"query": {
> 		"startkey": [":startkey"],
> 		"endkey": [":startkey", {}]
> 	}
> },

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] [Commented] (COUCHDB-1017) HTTP Rewrite Handler: Rewriting strings in queries

Posted by "Markus Barchfeld (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/COUCHDB-1017?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13052798#comment-13052798 ] 

Markus Barchfeld commented on COUCHDB-1017:
-------------------------------------------

Thanks for your comment, Gabriel. It made me look into #1074, where everything is explained.

My use case was to rewrite an URL with year and month into startkey and endkey parameters.
E.g the incoming URL

"availabledays/2010/1" 

with the rewrite rule 

    {
      "from": "/availabledays/:year/:month",
      "to": "_list/available/measurements",
      "query": {
        "group_level": "3",
        "startkey": [ ":year", ":month" ],
        "endkey": [ ":year",":month", {}] 
       },
       "formats": {
            "year": "int",
            "month": "int"
       }
    },

is transformed into

_list/available/measurements?startkey=%5B2010%2C1%5D&endkey=%5B2010%2C1%2C%7B%7D%5D&group_level=3&year=2010&month=1

Which is perfect. Or at least nearly ;-) Any way to get rid of the year and month query parameters in the rewritten rule?


> HTTP Rewrite Handler: Rewriting strings in queries
> --------------------------------------------------
>
>                 Key: COUCHDB-1017
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1017
>             Project: CouchDB
>          Issue Type: Improvement
>          Components: HTTP Interface
>    Affects Versions: 1.0.1
>            Reporter: Michel Legnered
>            Assignee: Benoit Chesneau
>            Priority: Minor
>
> I have this rewrite:
> {
> 	"from": "/u/:key",
> 	"to": "_list/pouch/user-items",
> 	"method": "GET",
> 	"query": {"key": ":key"}
> }
> ..where the view returns: {"error":"bad_request","reason":"invalid UTF-8 JSON"}. The view query looks like this ?key=somekey, but for the view to succeed "somekey" need to be in double quotes.
> Maybe one could improve the rewriter's behavior for rewriting strings in queries? 
> Here is one workaround:
> {
> 	"from": "/u/:startkey",
> 	"to": "_list/pouch/user-items",
> 	"method": "GET",
> 	"query": {
> 		"startkey": [":startkey"],
> 		"endkey": [":startkey", {}]
> 	}
> },

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Assigned: (COUCHDB-1017) HTTP Rewrite Handler: Rewriting strings in queries

Posted by "Benoit Chesneau (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/COUCHDB-1017?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Benoit Chesneau reassigned COUCHDB-1017:
----------------------------------------

    Assignee: Benoit Chesneau

> HTTP Rewrite Handler: Rewriting strings in queries
> --------------------------------------------------
>
>                 Key: COUCHDB-1017
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1017
>             Project: CouchDB
>          Issue Type: Improvement
>          Components: HTTP Interface
>    Affects Versions: 1.0.1
>            Reporter: Michel Legnered
>            Assignee: Benoit Chesneau
>            Priority: Minor
>
> I have this rewrite:
> {
> 	"from": "/u/:key",
> 	"to": "_list/pouch/user-items",
> 	"method": "GET",
> 	"query": {"key": ":key"}
> }
> ..where the view returns: {"error":"bad_request","reason":"invalid UTF-8 JSON"}. The view query looks like this ?key=somekey, but for the view to succeed "somekey" need to be in double quotes.
> Maybe one could improve the rewriter's behavior for rewriting strings in queries? 
> Here is one workaround:
> {
> 	"from": "/u/:startkey",
> 	"to": "_list/pouch/user-items",
> 	"method": "GET",
> 	"query": {
> 		"startkey": [":startkey"],
> 		"endkey": [":startkey", {}]
> 	}
> },

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] [Commented] (COUCHDB-1017) HTTP Rewrite Handler: Rewriting strings in queries

Posted by "Marcos Zanona (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/COUCHDB-1017?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13032925#comment-13032925 ] 

Marcos Zanona commented on COUCHDB-1017:
----------------------------------------

Any news on this subject?
I am having the same issue

> HTTP Rewrite Handler: Rewriting strings in queries
> --------------------------------------------------
>
>                 Key: COUCHDB-1017
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1017
>             Project: CouchDB
>          Issue Type: Improvement
>          Components: HTTP Interface
>    Affects Versions: 1.0.1
>            Reporter: Michel Legnered
>            Assignee: Benoit Chesneau
>            Priority: Minor
>
> I have this rewrite:
> {
> 	"from": "/u/:key",
> 	"to": "_list/pouch/user-items",
> 	"method": "GET",
> 	"query": {"key": ":key"}
> }
> ..where the view returns: {"error":"bad_request","reason":"invalid UTF-8 JSON"}. The view query looks like this ?key=somekey, but for the view to succeed "somekey" need to be in double quotes.
> Maybe one could improve the rewriter's behavior for rewriting strings in queries? 
> Here is one workaround:
> {
> 	"from": "/u/:startkey",
> 	"to": "_list/pouch/user-items",
> 	"method": "GET",
> 	"query": {
> 		"startkey": [":startkey"],
> 		"endkey": [":startkey", {}]
> 	}
> },

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] Commented: (COUCHDB-1017) HTTP Rewrite Handler: Rewriting strings in queries

Posted by "Michel Legnered (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/COUCHDB-1017?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12979387#action_12979387 ] 

Michel Legnered commented on COUCHDB-1017:
------------------------------------------

Here is the full debug log for the request:

[info] [<0.32.0>] Apache CouchDB has started on http://127.0.0.1:80/
[debug] [<0.104.0>] 'GET' /inventoria/_design/inventoria/_rewrite/u/miche {1,1}
Headers: [{'Accept',"application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"},
          {'Accept-Charset',"ISO-8859-1,utf-8;q=0.7,*;q=0.3"},
          {'Accept-Encoding',"gzip,deflate,sdch"},
          {'Accept-Language',"en-US,en;q=0.8"},
          {'Cache-Control',"max-age=0"},
          {'Connection',"keep-alive"},
          {'Host',"127.0.0.1"},
          {'User-Agent',"Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.215 Safari/534.10"}]
[debug] [<0.104.0>] OAuth Params: []
[debug] [<0.104.0>] rewrite to "/inventoria/_design/inventoria/_list/pouch/user-items?key=miche" 

[debug] [<0.104.0>] 'GET' /inventoria/_design/inventoria/_list/pouch/user-items?key=miche {1,1}
Headers: [{'Accept',"application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"},
          {'Accept-Charset',"ISO-8859-1,utf-8;q=0.7,*;q=0.3"},
          {'Accept-Encoding',"gzip,deflate,sdch"},
          {'Accept-Language',"en-US,en;q=0.8"},
          {'Cache-Control',"max-age=0"},
          {'Connection',"keep-alive"},
          {'Host',"127.0.0.1"},
          {'User-Agent',"Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.215 Safari/534.10"}]
[debug] [<0.104.0>] OAuth Params: [{"key","miche"}]
[debug] [<0.101.0>] Spawning new group server for view group _design/inventoria in database inventoria.
[debug] [<0.104.0>] request_group {Pid, Seq} {<0.127.0>,233}
[error] [<0.104.0>] attempted upload of invalid JSON (set log_level to debug to log it)
[debug] [<0.104.0>] Invalid JSON: "miche"
[info] [<0.104.0>] 127.0.0.1 - - 'GET' /inventoria/_design/inventoria/_list/pouch/user-items?key=miche 400
[debug] [<0.83.0>] New task status for inventoria _design/inventoria: Finishing.
[debug] [<0.104.0>] httpd 400 error response:
 {"error":"bad_request","reason":"invalid UTF-8 JSON"}

> HTTP Rewrite Handler: Rewriting strings in queries
> --------------------------------------------------
>
>                 Key: COUCHDB-1017
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1017
>             Project: CouchDB
>          Issue Type: Improvement
>          Components: HTTP Interface
>    Affects Versions: 1.0.1
>            Reporter: Michel Legnered
>            Assignee: Benoit Chesneau
>            Priority: Minor
>
> I have this rewrite:
> {
> 	"from": "/u/:key",
> 	"to": "_list/pouch/user-items",
> 	"method": "GET",
> 	"query": {"key": ":key"}
> }
> ..where the view returns: {"error":"bad_request","reason":"invalid UTF-8 JSON"}. The view query looks like this ?key=somekey, but for the view to succeed "somekey" need to be in double quotes.
> Maybe one could improve the rewriter's behavior for rewriting strings in queries? 
> Here is one workaround:
> {
> 	"from": "/u/:startkey",
> 	"to": "_list/pouch/user-items",
> 	"method": "GET",
> 	"query": {
> 		"startkey": [":startkey"],
> 		"endkey": [":startkey", {}]
> 	}
> },

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] [Commented] (COUCHDB-1017) HTTP Rewrite Handler: Rewriting strings in queries

Posted by "Gabriel Farrell (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/COUCHDB-1017?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13052560#comment-13052560 ] 

Gabriel Farrell commented on COUCHDB-1017:
------------------------------------------

Benoit, works for me. Which commit fixed this? It would be nice to have a pointer.

Markus, have you tried this in your rewrites: "startkey": [":year", ":month"].

> HTTP Rewrite Handler: Rewriting strings in queries
> --------------------------------------------------
>
>                 Key: COUCHDB-1017
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1017
>             Project: CouchDB
>          Issue Type: Improvement
>          Components: HTTP Interface
>    Affects Versions: 1.0.1
>            Reporter: Michel Legnered
>            Assignee: Benoit Chesneau
>            Priority: Minor
>
> I have this rewrite:
> {
> 	"from": "/u/:key",
> 	"to": "_list/pouch/user-items",
> 	"method": "GET",
> 	"query": {"key": ":key"}
> }
> ..where the view returns: {"error":"bad_request","reason":"invalid UTF-8 JSON"}. The view query looks like this ?key=somekey, but for the view to succeed "somekey" need to be in double quotes.
> Maybe one could improve the rewriter's behavior for rewriting strings in queries? 
> Here is one workaround:
> {
> 	"from": "/u/:startkey",
> 	"to": "_list/pouch/user-items",
> 	"method": "GET",
> 	"query": {
> 		"startkey": [":startkey"],
> 		"endkey": [":startkey", {}]
> 	}
> },

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira