Ability to replace substrings in rewriter
-----------------------------------------
Key: COUCHDB-1006
URL: https://issues.apache.org/jira/browse/COUCHDB-1006
Project: CouchDB
Issue Type: Improvement
Components: Database Core
Reporter: Volker Mische
Priority: Minor
The current rewriter is bound to the parts of a path. Therefore I propose and
additional "replace" property to be able to rewrite URLs beyond that
limitation. One example would be subpages in a wiki, where each subpage
corresponds to one document in the database. Here's an example:
Desired URL:
http://example.com/wiki/apache-projects/couchdb/info
URL without rewriting:
http://example.com/wiki/apache-projects%2fcouchd%2f/info
Another use case is when you have to deal with attachments. For example if you
want to build a TMS tilecache [1] bases on CouchDB. My URL would look like this
(where "tile" is the attachement):
http://example.com/tilecache/3-5-2/tile
But I'd need an URL like
http://example.com/tilecache/tiles/3/5/2.png
(resp. http://example.com/tilecache/_design/tilecache/_rewrite/tiles/6/9/9.png)
My modification to the rewriter allows you to replace substrings with other
ones. Here's the rewriter rule for this example:
{
"from" : "/tiles/<x>/<y>/<z>.png",
"to" : "..\\/..\\/:x/:y/:z/tile",
"replace": {
"old": "/",
"new": "-",
"limit": -1
}
}
It replaces all occurences of "/" with "-" on the "to"-path. Two slashes ("\\")
escape a character, so it won't be replaced. The "limit" parameter specifies
how many occurences should be replaced. It could be either positive, then it
will just count how often a string was already replaced and stop at the limit.
If "limit" is negative, it will count from the back. This is especially useful
if you want to replace slashes and know how many slashes the attachment has,
but not how many the document has.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.