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