Yes, there's no body with DELETE requests. Nonetheless, as with PUT requests, you can specify the current revision number in the If-Match header. So, you don't really need ?rev= for DELETE requests.
- Klaus On Wed, 2010-08-18 at 15:16 +0100, Robert Newson wrote: > The reason it you need ?rev= for DELETE is that there's no request > body for DELETE, unlike for PUT. So I don't see that adding ?rev= for > PUT is about consistency. It looks like a neat enhancement, though, > the issues with precedence notwithstanding. > > B. > > On Wed, Aug 18, 2010 at 2:50 PM, Klaus Trainer (JIRA) <j...@apache.org> wrote: > > > > [ > > https://issues.apache.org/jira/browse/COUCHDB-642?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12899848#action_12899848 > > ] > > > > Klaus Trainer commented on COUCHDB-642: > > --------------------------------------- > > > > We need to consider that the ETag in the If-Match header doesn't override > > the _rev field in the body either. In fact, if they are not equal, status > > code 400 Bad Request is returned. > > > > I'm certainly not the one who can and wants to decide whether this > > behaviour should better be changed or not. > > > > The only opinion I have about the issue is that things should be > > consistent. That's the actual reason why I wrote the patch: if the rev > > query parameter works with DELETE requests, it should work with PUT > > requests as well. > > > > In that sense, your argument that the _id field in the document is > > overridden and hence the _rev field should be as well, sounds reasonable. > > Consequently, the ETag should also override the body's _rev field in that > > case. > > > > I can change the current behaviour, so that the rev query parameter and the > > ETag override the _rev field in the body. However, I won't do anything in > > that direction, as long as I haven't heard any opinion of some core > > developers. > > > >> Support rev in PUT URL > >> ---------------------- > >> > >> Key: COUCHDB-642 > >> URL: https://issues.apache.org/jira/browse/COUCHDB-642 > >> Project: CouchDB > >> Issue Type: New Feature > >> Components: HTTP Interface > >> Environment: trunk 08 Feb 2010 > >> Reporter: Brian Candler > >> Priority: Minor > >> Attachments: 0001-Allow-for-the-current-revision-number-to-be.patch > >> > >> > >> A DELETE request lets you append ?rev=xxxx to the URL. But this doesn't > >> work with a PUT request; you have to put the _rev in the body instead > >> (even though the _id is taken from the URL path) > >> $ curl -X PUT -d "{}" > >> http://brianadmin:brianad...@127.0.0.1:5984/briantest/foo > >> {"ok":true,"id":"foo","rev":"1-967a00dff5e02add41819138abb3284d"} > >> $ curl -X PUT -d "{}" > >> http://brianadmin:brianad...@127.0.0.1:5984/briantest/foo?rev=1-967a00dff5e02add41819138abb3284d > >> {"error":"conflict","reason":"Document update conflict."} > >> $ curl -X PUT -d '{"_rev":"1-967a00dff5e02add41819138abb3284d"}' > >> http://brianadmin:brianad...@127.0.0.1:5984/briantest/foo > >> {"ok":true,"id":"foo","rev":"2-7051cbe5c8faecd085a3fa619e6e6337"} > >> Allowing ?rev in the URL would make PUT and DELETE more consistent, and > >> would allow you to replace an existing JSON doc with another one without > >> having to merge the _rev into it first. > > > > -- > > This message is automatically generated by JIRA. > > - > > You can reply to this email to add a comment to the issue online. > > > >