Database Reference
In-Depth Information
Content-Type: application/json
Content-Length: 59
{"nickname" : "Sweet Polly Purebred", "breed" : "Purebred"}
Sie können (durch Kommata getrennt) so viele Metadaten-
Link
s angeben wie
nötig. Wir tragen Ace in Zwinger 2 ein und verweisen über
next_to
auf Zwinger
1, damit wir wissen, dass sie beieinanderstehen.
$
curl -X PUT http://localhost:8091/riak/cages/2
\
-H "Content-Type: application/json" \
-H "Link:</riak/animals/ace>;riaktag=\"contains\",
</riak/cages/1>;riaktag=\"next
_
to\"" \
-d '{"room" : 101}'
Was
Link
s bei Riak so besonders macht, ist die Link-Traversierung, das
sog.
Link-Walking
(und eine leistungsfähigere Variante, sog. „verlinkte map-
reduce-Queries“, die wir uns morgen ansehen). An die verlinkten Daten ge-
langen Sie, indem Sie eine
Linkspezifikation
(link spec) an die URL anhän-
gen, die wie folgt strukturiert ist:
/
_
,
_
,
_
. Die Unterstriche (_) in der URL re-
präsentieren Platzhalter (Wildcards) für die jeweiligen Link-Kriterien: bucket,
tag, keep. Wir erklären diese Begriffe gleich. Zuerst wollen wir alle Links für
Zwinger 1 abrufen.
$
curl http://localhost:8091/riak/cages/1/
_
,
_
,
_
--4PYi9DW8iJK5aCvQQrrP7mh7jZs
Content-Type: multipart/mixed; boundary=Av1fawIA4WjypRlz5gHJtrRqklD
--Av1fawIA4WjypRlz5gHJtrRqklD
X-Riak-Vclock: a85hYGBgzGDKBVIcypz/fvrde/U5gymRMY+VwZw35gRfFgA=
Location: /riak/animals/polly
Content-Type: application/json
Link: </riak/animals>; rel="up"
Etag: VD0ZAfOTsIHsgG5PM3YZW
Last-Modified: Tue, 13 Dec 2011 17:53:59 GMT
{"nickname" : "Sweet Polly Purebred", "breed" : "Purebred"}
--Av1fawIA4WjypRlz5gHJtrRqklD--
--4PYi9DW8iJK5aCvQQrrP7mh7jZs--
Zurückgegeben wird ein
multipart/mixed
-Dump der Header sowie die Bodies
aller verlinkten Schlüssel/Werte. Da bekommt man beim Hinsehen schon
Kopfschmerzen. Morgen sehen wir uns eine leistungsfähigere Möglichkeit an,
an diese Daten zu gelangen, die auch schönere Werte zurückliefert - doch
heute wollen wir noch etwas tiefer in diese Syntax einsteigen.