POST
Example over many words.curl -v http://127.0.0.1:2379/v2/keys/test -XPOST -D value="some value"
curl -v http://127.0.0.1:2379/v2/keys/test -XPOST -D value="some value"
Two same command result into following content:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | { "action": "get", "node": { "key": "/test", "dir": true, "nodes": [ { "key": "/test/194", "value": "", "modifiedIndex": 194, "createdIndex": 194 }, { "key": "/test/195", "value": "", "modifiedIndex": 195, "createdIndex": 195 } ], "modifiedIndex": 194, "createdIndex": 194 } } |
So ETCD adds an index value and put it into resulting key - which is also path to the value. For instance:
curl -v http://127.0.0.1:2379/v2/keys/test/194 -XGET
Allows you to get the specific key. The index is explicitly expressed in the url.
PUT
Put command just add or update given key. Let say I would use following example:
curl -v http://127.0.0.1:2379/v2/keys/test -XPUT -D value="some value"
Resulting content on test key is expected.
1 2 3 4 5 6 7 8 9 | { "action": "get", "node": { "key": "/test", "value": "", "modifiedIndex": 198, "createdIndex": 198 } } |
How to Model Add and Update Method?
My current task is to model and implement repository using ETCD under the hood. Usual repository contains CRUD methods for particular set of entities. Reasonable approach is to separate add from update to do not replace existing object, e.g. when using optimistic locking.I don't want to see revision - index - numbers within keys so post command is not useful here. ETCD brings prevExist parameter for this use cases.
I want to perform add method which expect that there is no content on given key. I'll use following statement:
curl -v http://127.0.0.1:2379/v2/keys/test?prevExist=false -XPUT -D value="some value"
1 2 3 4 5 6 | { "errorCode": 105, "message": "Key already exists", "cause": "/test", "index": 198 } |
On the other hand, use false to express update existing entity.
curl -v http://127.0.0.1:2379/v2/keys/test?prevExist=true -XPUT -D value="some value"
This command results into positive response.
< HTTP/1.1 200 OK
The repository uses put for both add and update methods but value for prevExist is the difference.
2 comments:
Dear.I am very honored to introduce a free date/photo recovery products to you, it is very useful and
free,and professional technical support.THANK YOU !
Harrah's Casino New Orleans - MapyRO
Welcome to Harrah's New Orleans. We 평택 출장샵 are 포항 출장안마 located 서산 출장안마 off South Front Street and North of the River 대전광역 출장샵 from Harrah's 구미 출장안마 Blvd. to Orleans Casino and Hotel.
Post a Comment