Erfahren Sie, wie Sie das Dienst­pro­gramm Curl verwenden können, um mit CouchDB über die Be­fehls­zei­le zu arbeiten. Obwohl die Futon Webadmin-Ober­flä­che eine einfache Mög­lich­keit ist, einfache Ope­ra­tio­nen mit CouchDB durch­zu­füh­ren, ist die API die fle­xi­bels­te, schnells­te und leis­tungs­fä­higs­te Methode, um Standard-CRUD-Ope­ra­tio­nen (Create, Read, Update, Delete) in CouchDB durch­zu­füh­ren, sowohl von Hand als auch mit Skripten.

An­for­de­run­gen

  • Ein Cloud Server (Ubuntu 16.04) mit in­stal­lier­ter CouchDB.
Free Cloud Server Trial
Virtual Private Server auf En­ter­pri­se-Level
  • KVM-basierte vServer für Ent­wick­ler
  • In­te­griert in die IONOS Compute Engine
  • Ska­lier­bar bis zur En­ter­pri­se-Cloud

Die Grund­la­gen der Arbeit mit CouchDB

Nachdem Sie CouchDB in­stal­liert haben, können Sie über HTTP auf Port 5984 mit Hilfe von Standard-GET- und PUT-Anfragen auf die API zugreifen.

Von der Be­fehls­zei­le aus können Sie Curl verwenden, um diese Anfragen zu stellen.

Du kannst dies mit dem Befehl testen:

curl http://127.0.0.1:5984/

Der Server antwortet mit einer Will­kom­mens­mel­dung:

{"couchdb":"Welcome","uuid":"f33e87d034bb8c1227f866445a977555","version":"1.6.1","vendor":{"version":"16.04","name":"Ubuntu"}}

Verwenden Sie das Flag -X, um eine Methode (wie GET oder PUT) für Curl anzugeben. Zum Beispiel ist der Befehl, eine Liste aller Da­ten­ban­ken in der CouchDB-In­stal­la­ti­on zu erhalten:

curl -X GET http://127.0.0.1:5984/_all_dbs

Eine Datenbank oder ein Dokument erstellen

Verwenden Sie die Methode PUT, um eine Datenbank oder ein Dokument (Datensatz) zu erstellen. Um bei­spiels­wei­se eine Datenbank mit dem Namen reviews zu erstellen, lautet der Befehl:

curl -X PUT http://127.0.0.1:5984/reviews

Um ein Dokument zur Datenbank hin­zu­zu­fü­gen, verwenden Sie curl -X PUT mit dem Namen Ihrer Datenbank und der ein­deu­ti­gen ID des Da­ten­sat­zes, den Sie erstellen möchten, und verwenden Sie dann -d, um die In­for­ma­tio­nen des Da­ten­sat­zes im JSON-Format wei­ter­zu­ge­ben.

Mit dem folgenden Befehl wird bei­spiels­wei­se ein Datensatz mit der ID 01 in die Über­prü­fungs­da­ten­bank eingefügt:

curl -X PUT http://127.0.0.1:5984/reviews/01 -d '{"reviewer_name":"Ben", "stars":"4", "details":"Love the calzone!"}'

In­for­ma­tio­nen über eine Datenbank oder ein Dokument abrufen

Verwenden Sie die GET-Methode, um In­for­ma­tio­nen über eine Datenbank oder ein Dokument abzurufen und zu lesen. Um ein Dokument zu erhalten, geben Sie die ID des Dokuments am Ende der URL an.

Der Befehl zum Abrufen des Da­ten­sat­zes, den wir im obigen Beispiel eingefügt haben, lautet bei­spiels­wei­se:

curl -X GET http://127.0.0.1:5984/reviews/01

Der Server antwortet mit dem Inhalt des Dokuments im JSON-Format:

{
"_id":"01",
"_rev":"1-8ce1d23b7455705c3c2cbeeb86d8ccf5",
"reviewer_name":"Ben",
"stars":"4",
"details":"Love the calzone!"
}

Ein Dokument ak­tua­li­sie­ren

CouchDB verfügt über eine au­to­ma­ti­sche Än­de­rungs­ver­fol­gung und -kontrolle. Im obigen Beispiel ist zu beachten, dass es ein _rev-Feld mit einer Re­vi­si­ons­num­mer gibt, obwohl wir das in unserer ur­sprüng­li­chen PUT-Anfrage nicht eingefügt haben. Dieses Feld für die Re­vi­si­ons­num­mer wird au­to­ma­tisch erstellt, wenn Sie einen Datensatz einfügen.

Um ein Dokument zu ak­tua­li­sie­ren, müssen Sie CouchDB mitteilen, welche Revision Sie ak­tua­li­sie­ren. Wenn die Re­vi­si­ons­num­mer über­ein­stimmt, ak­tua­li­siert CouchDB die In­for­ma­tio­nen und generiert eine neue Re­vi­si­ons­num­mer. (Wenn die Re­vi­si­ons­num­mer nicht über­ein­stimmt, gibt CouchDB einen 409 Kon­flikt­feh­ler zurück.)

Um ein Dokument zu ak­tua­li­sie­ren, verwenden Sie die PUT-Methode und geben Sie die Re­vi­si­ons­num­mer an. Sie können entweder das gesamte Dokument oder nur ein einzelnes Feld ak­tua­li­sie­ren.

In diesem Beispiel werden wir die Anzahl der Sterne in der Bewertung von 4 auf 5 ak­tua­li­sie­ren:

curl -X PUT http://127.0.0.1:5984/reviews/01 -d '{"_id":"01", "stars":"5", "_rev":"1-8ce1d23b7455705c3c2cbeeb86d8ccf5"}'

Der Server gibt eine Antwort zurück, die "ok" und die neue Re­vi­si­ons­num­mer enthält:

{"ok":true,"id":"01","rev":"2-55b1c6edb9a0fd8eb58bd73b8e0058d5"}

Einen Datensatz löschen

Um einen Datensatz zu löschen, verwenden Sie die Methode DELETE und geben Sie die ID des Da­ten­sat­zes und die ak­tu­ells­te Re­vi­si­ons­num­mer an. Zum Beispiel ist der Befehl zum Löschen des oben er­stell­ten Da­ten­sat­zes:

curl -X DELETE http://127.0.0.1:5984/reviews/01?rev=2-55b1c6edb9a0fd8eb58bd73b8e0058d5

Der Server gibt eine Antwort zurück, die "ok" und die neue Re­vi­si­ons­num­mer enthält:

{"ok":true,"id":"01","rev":"3-ec3f3491444854d08aaa7dd6ffe68670"}

Denn um die Re­pli­ka­ti­ons­funk­tio­nen von CouchDB zu erhalten, werden Da­ten­sät­ze nicht tat­säch­lich gelöscht. Statt­des­sen wird eine Revision hin­zu­ge­fügt, die In­for­ma­tio­nen über das Löschen enthält, und der Datensatz ist mit einer Stan­dard­an­for­de­rung nicht zu­gäng­lich.

Wenn wir bei­spiels­wei­se versuchen, diesen Datensatz erneut an­zu­zei­gen, antwortet der Server mit "nicht gefunden":

user@localhost:$ curl -X GET http://127.0.0.1:5984/reviews/01
{"error":"not_found","reason":"deleted"}
Zum Hauptmenü