On Thu, May 14, 2009 at 3:26 AM, Brian Candler <[email protected]> wrote: > On Wed, May 13, 2009 at 06:58:47PM +0200, Jan Lehnardt wrote: >>> Sorry for responding to my original message instead of a reply in the >>> thread, but I seem to be having some issues with the mailing list. >>> Oliver, you are right, I could use a javascript wrapper for flash. The >>> problem with that is that it introduces a second dependency to >>> interact with the REST interface. >> >> It adds a second API and complexity to CouchDB to support >> non-standard clients. I.e: If you don't speak HTTP, you can't >> talk to CouchDB. > > I think you'll find this is extremely common; many clients especially don't > implement DELETE. > > The way Rails deals with it is to allow a form POST to have a _method field, > and if it's present, it takes precedence over the HTTP method. > > actionpack/lib/action_view/helpers/url_helper.rb: > method_tag = tag('input', :type => 'hidden', :name => '_method', > :value => method.to_s) > > Of course, CouchDB doesn't take a application/x-www-form-urlencoded, it > takes an application/json body. So I think the nearest equivalent would be > to allow a "_method" member in the JSON body and honour it for all POST > requests [with JSON bodies]. Conveniently, CouchDB has already reserved all > top-level keys beginning with underscores for its own purposes. > > Regards, > > Brian. >
Eww. I'm all for supporting clients that have a brain dead HTTP interface, but piggybacking protocol information into the payload seems like not a good idea. If we're going to allow method overrides I'd vote +10 internets for the header version. But until someone shows me something that can't be accomplished using the _bulk_docs API I'd be -0 on supporting the header even. Paul Davis
