incubator-couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Robin Berjon <ro...@berjon.com>
Subject Rewrite inside of a path segment
Date Tue, 18 Sep 2012 08:16:55 GMT
Hi all,

I am using rewrites in order to expose a nice API but I am hitting a problem with rewrites.
The constraints I have are as follows (my app is not a blog, but I'll use that for examples
as it'll be simpler). First, I would like these three basic operations to work:

GET /blog/this-is-my-title
PUT /blog/this-is-my-title
DELETE /blog/this-is-my-title

So far so good. But the second constraint is that "this-is-my-title" is not the ID of the
relevant documents, but rather the value of one of their fields. It is unique within a type,
but not unique across all types in the DB (otherwise I'd just use it as the ID and call it
a day). So I generate IDs based on concatenating the type and that field.

I got this working easily for GET and PUT, using rewrites that point respectively to a view
indexed on the right type plus field, and an update handler that generates the correct ID
on the fly.

For DELETE though, I'm stuck. I've tried a bunch of variations from rewriting to the document
itself to rewriting to an update handler that sets the _deleted attribute but I can't seem
to work my way to a solution.

The problem is that I need a rewrite that invariably accepts parameters that don't fall at
the / boundary. Typically:

{
    from:   "/blog/*"
,   to:     "../../blog.*"
,   method: "DELETE"
}

And that doesn't work. It just invariably encodes the * or :id, or whatnot. Have I missed
something? I of course could simply expose another ID for DELETE or ugly IDs everywhere, but
that completely defeats the point of having rewrites in the first place.

Thanks for any suggestions!

-- 
Robin Berjon - http://berjon.com/ - @robinberjon


Mime
View raw message