You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@couchdb.apache.org by "Adam Kocoloski (JIRA)" <ji...@apache.org> on 2011/09/01 03:01:20 UTC

[jira] [Commented] (COUCHDB-1268) "?rev=" URL query parameter

    [ 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