couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Klaus Trainer <klaus.trai...@web.de>
Subject Re: [jira] Commented: (COUCHDB-642) Support rev in PUT URL
Date Wed, 18 Aug 2010 14:24:00 GMT
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) <jira@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:brianadmin@127.0.0.1:5984/briantest/foo
> >> {"ok":true,"id":"foo","rev":"1-967a00dff5e02add41819138abb3284d"}
> >> $ curl -X PUT -d "{}" http://brianadmin:brianadmin@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:brianadmin@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.
> >
> >



Mime
View raw message