73 lines
2.4 KiB
Plaintext
73 lines
2.4 KiB
Plaintext
|
|
ZooKeeper REST implementation using Jersey JAX-RS.
|
|
--------------------------------------------------
|
|
|
|
This is an implementation of version 2 of the ZooKeeper REST spec.
|
|
|
|
Note: This interface is currently experimental, may change at any time,
|
|
etc... In general you should be using the Java/C client bindings to access
|
|
the ZooKeeper server.
|
|
|
|
This REST ZooKeeper gateway is useful because most of the languages
|
|
have built-in support for working with HTTP based protocols.
|
|
|
|
See SPEC.txt for details on the REST binding.
|
|
|
|
Quickstart:
|
|
-----------
|
|
|
|
1) start a zookeeper server on localhost port 2181
|
|
|
|
2) run "ant run"
|
|
|
|
3) use a REST client to access the data (see below for more details)
|
|
|
|
curl http://localhost:9998/znodes/v1/
|
|
|
|
or use the provided src/python scripts
|
|
|
|
zk_dump_tree.py
|
|
|
|
|
|
Tests:
|
|
----------
|
|
|
|
1) the full testsuite can be run via "ant test" target
|
|
2) the python client library also contains a test suite
|
|
|
|
Examples Using CURL
|
|
-------------------
|
|
|
|
First review the spec SPEC.txt in this directory.
|
|
|
|
#get the root node data
|
|
curl http://localhost:9998/znodes/v1/
|
|
|
|
#get children of the root node
|
|
curl http://localhost:9998/znodes/v1/?view=children
|
|
|
|
#get "/cluster1/leader" as xml (default is json)
|
|
curl -H'Accept: application/xml' http://localhost:9998/znodes/v1/cluster1/leader
|
|
|
|
#get the data as text
|
|
curl -w "\n%{http_code}\n" "http://localhost:9998/znodes/v1/cluster1/leader?dataformat=utf8"
|
|
|
|
#set a node (data.txt contains the ascii text you want to set on the node)
|
|
curl -T data.txt -w "\n%{http_code}\n" "http://localhost:9998/znodes/v1/cluster1/leader?dataformat=utf8"
|
|
|
|
#create a node
|
|
curl -d "data1" -H'Content-Type: application/octet-stream' -w "\n%{http_code}\n" "http://localhost:9998/znodes/v1/?op=create&name=cluster2&dataformat=utf8"
|
|
|
|
curl -d "data2" -H'Content-Type: application/octet-stream' -w "\n%{http_code}\n" "http://localhost:9998/znodes/v1/cluster2?op=create&name=leader&dataformat=utf8"
|
|
|
|
#create a new session
|
|
curl -d "" -H'Content-Type: application/octet-stream' -w "\n%{http_code}\n" "http://localhost:9998/sessions/v1/?op=create&expire=10"
|
|
|
|
#session heartbeat
|
|
curl -X "PUT" -H'Content-Type: application/octet-stream' -w "\n%{http_code}\n" "http://localhost:9998/sessions/v1/02dfdcc8-8667-4e53-a6f8-ca5c2b495a72"
|
|
|
|
#delete a session
|
|
curl -X "DELETE" -H'Content-Type: application/octet-stream' -w "\n%{http_code}\n" "http://localhost:9998/sessions/v1/02dfdcc8-8667-4e53-a6f8-ca5c2b495a72"
|
|
|
|
|