[ 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
|