2. REST-Interface
• API über http GET, PUT, POST, DELETE
• Browser und curl sind unsere Freunde:
➜ curl http://localhost:5984/demo/1dc6eece6526ad34c376a04dad0019e2
{"_id": "1dc6eece6526ad34c376a04dad0019e2",
"_rev": "1-09ef435d312bbc80136ec750025a44d1",
"urgency": "3",
"request": "init"}
Einführung in CouchDB
Zurücklehnen und entspannen!
3. Dokument anlegen
➜ curl -X POST -H 'Content-Type: application/json'
-d '{"request": "init", "urgency": 3}'
http://name:pw@localhost:5984/demo
HTTP/1.1 201 Created
{"ok": true,
"id": "5fe5c3d8731379a5d0b4d4ae0e0046da",
"rev": "1-09ef435d312bbc80136ec750025a44d1"}
Einführung in CouchDB
Zurücklehnen und entspannen!
4. Dokument mit ID
➜ curl -X POST -H 'Content-Type: application/json'
-d '{"request": "init", "urgency": 3}'
http://name:pw@localhost:5984/demo/very-urgent
HTTP/1.1 201 Created
{"ok": true,
"id": "very-urgent",
"rev": "1-09ef435d312bbc80136ec750025a44d1"}
Einführung in CouchDB
Zurücklehnen und entspannen!
5. Konflikt
➜ curl -X PUT -H 'Content-Type: application/json'
-d '{"request": "init", "urgency": 10}'
http://name:pw@localhost:5984/demo/very-urgent
HTTP/1.1 409 Conflict
{"error": "conflict",
"reason": "Document update conflict."}
Einführung in CouchDB
Zurücklehnen und entspannen!
6. Überschreiben
➜ curl -X PUT -H 'Content-Type: application/json'
-d '{"request": "init", "urgency": 10,
"_rev": "1-09ef435d312bbc80136ec750025a44d1" }'
http://name:pw@localhost:5984/demo/very-urgent
HTTP/1.1 201 Created
{"ok": true,
"id": "very-urgent",
"rev": "2-d13bda084accd9c47ecd176b9fe164b3"}
Einführung in CouchDB
Zurücklehnen und entspannen!
7. Views
• ermöglichen systematischen Zugriff auf
die Dokumente
• Map / Reduce
• konzeptuell zunächst ungewohnt
• werden in sogenannten »Design
Dokumenten« in der Datenbank abgelegt
Einführung in CouchDB
Zurücklehnen und entspannen!
8. Map
• Dokument wird als Variable doc übergeben
• Daten schreiben mit der Funktion emit
• Beispiel:
function (doc) {
emit(doc.request, doc.urgency);
}
Einführung in CouchDB
Zurücklehnen und entspannen!
9. Reduce
• optional
• zum Zusammenfassen von Dokumenten mit
demselbem Map-Ergebnis: muß einen Array
von Werten zu einem Wert reduzieren
• muß technische Bedingungen erfüllen
• vordefiniert: _count, _sum
Einführung in CouchDB
Zurücklehnen und entspannen!