couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Adam Kocoloski (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (COUCHDB-1268) "?rev=" URL query parameter
Date Thu, 01 Sep 2011 01:01:20 GMT

    [ https://issues.apache.org/jira/browse/COUCHDB-1268?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13095036#comment-13095036
] 

Adam Kocoloski commented on COUCHDB-1268:
-----------------------------------------

I'll see your query string and raise you a request header -- set the value of the If-Match
header to the document revision and you can omit both the qs parameter and the _rev in the
JSON.  I definitely agree that the underscore-prefixed special document properties are a wart
and one that we should have tried harder to avoid.

Regardless of the If-Match option we should be consistent in our API.  If the "rev" query-string
parameter works everywhere else I see no reason why it shouldn't work for regular document
PUTs as well.

> "?rev=" URL query parameter
> ---------------------------
>
>                 Key: COUCHDB-1268
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1268
>             Project: CouchDB
>          Issue Type: Improvement
>          Components: Database Core
>    Affects Versions: 1.2
>         Environment: linux
>            Reporter: gert cuykens
>            Priority: Trivial
>              Labels: api-change
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> When PUTting a document you have to specify the current revision as a _rev key in the
JSON; whereas many related requests (like DELETE, COPY and PUT of an attachment) specify the
revision in a "?rev=" URL query parameter instead. The first example, will result into a document
conflict because rev is not specified in the JSON and the rev from the url gets ignored. All
other examples work. I strongly believe JSON bodies like this should never contain _id and
_rev and will improve in much better client code.
> curl -X PUT http://localhost:5984/_users/user%3Agert?rev=5xxx -H
> 'Content-Type: application/json' -d{
>  "_id"          : "user:gert",
>  "type"         : "user",
>  "name"         : "gert",
>  "roles"        : [],
>  "password_sha" : "",
>  "salt"         : ""
> }'
> curl -X PUT http://localhost:5984/_users/user%3Agert -H 'Content-Type:
> application/json' -d{
>  "_id"          : "user:gert",
>  "_rev":"5xxx",
>  "type"         : "user",
>  "name"         : "gert",
>  "roles"        : [],
>  "password_sha" : "",
>  "salt"         : ""
> }'
> curl -X PUT http://localhost:5984/_users/user%3Agert/picture?rev=5xxx
> -H 'Content-Type: image/png' -d @picture.png

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message