cURL ist ein gebräuchliches Kommandozeilentool Tools cURL , mit dem man Web-Requests an einen Server schicken kann.
MarkLogic horcht auf Port 8002 mit seiner Configuration Manager Applikation. Über diesen Port können auch cURL Requests zur Remote-Konfiguration abgesetzt werden.
Zum Anlegen einer Datenbank setzt man den folgenden cURL Befehl ab:
curl -X POST --anyauth -u admin:admin --header "Content-Type:application/json"
-d '{\"database-name\":\"xml-scrapper-content\"}'
http://localhost:8002/manage/v2/databasesPlain TextAnalog legt man einen "Forrest" an, den die oben definierte Datenbank braucht:
curl --anyauth --user alex:anoma66 -X POST -d '{\"forest-name\": \"xml-scrapper-forrest\",
\"database\": \"xml-scrapper-content\"}'
-i -H "Content-type: application/json" http://localhost:8002/manage/v2/forestsPlain TextDie Konsole quittiert das erfolgreiche Ereignis mit diesen Meldungen:
HTTP/1.1 201 Created Location: /manage/v2/forests/12099403305847426321 Content-type: application/xml; charset=UTF-8 Cache-Control: no-cache Expires: -1 Server: MarkLogic Content-Length: 0 Connection: Keep-Alive Keep-Alive: timeout=5Plain Text
Die Erfolgsmeldung kann man auch leicht in der Übersicht des Configuration Managers auf Port 8003 nachprüfen. Nun können wir die neue Datenbank mit der MarkLogic Content Pump Tools für MarkLogic Content Pump befüllen.
Dazu laden wir folgendes Beispiel-XML, das sich in einem Ordner input-files befindet, in die Datenbank:
<test> <title>Test Datei</title> <chapter> <title>Test Kapitel 1</title> <content>Kapitel Inhalt 1</content> </chapter> <chapter> <title>Test Kapitel 2</title> <content>Kapitel Inhalt 2</content> </chapter> <chapter> <title>Test Kapitel 2</title> <content>Kapitel Inhalt 2</content> </chapter> </test>Plain Text
Das geschieht mit dem Befehl:
mlcp import -database xml-scrapper -host localhost -username admin -password admin
-input_file_path input-files -input_file_type aggregates
-aggregate_record_element chapter
-output_collections /chapter
-output_uri_prefix /chapter/
-output_uri_suffix .xmlPlain TextNun brauchen wir nun noch einen Application Server in MarkLogic anlegen, um eigene XQuery Skripte laufen lassen zu können. In einer Datei server-setup.json definieren wir unsere Server Einstellungen:
{ "server-name":"xml-scrapper",
"root":"c:\\xquery",
"port":"8088",
"content-database":"xml-scrapper-content",
"server-type":"http",
"group-name":"Default"
}Plain TextDiese schicken wir mit dem folgenden cURL Befehl an den Server:
curl -X POST --digest -u alex:anoma66 -H "Content-type: application/json"
-d @server-setup.json http://localhost:8002/manage/v2/serversPlain TextIm Web-Interface können wir uns überzeugen, dass alles geklappt hat:

Die Konfiguration kann natürlich auch mittels des Webinterfaces auf Port 8001 gemacht werden, oder aber auch per XQuery Skripte über die Konsole auf Port 8000. Einige Skripte für diesen Zweck befinden sich auf den Developer Seiten von MarkLogic
Nach diesen Vorbereitungen können wir unseren App-Server nun mit Skripten bestücken, wie im folgenden Abschnitt beschrieben. Wir legen die Skripte in das Wurzelverzeichnis c:\xquery , das wir oben definiert haben und können diese über einen Webrequest aufrufen, z.B. so:
http://localhost:8088/test.xqyPlain Text