Ich bin ziemlich neu zu eXistDB, aber ich versuche, eine kleine App damit zu bauen.Anfrage JSON von existingDB
Ich bin mit einem JavaScript-Beispiel, das eine vorhandene JSON-Datei über jQuery anfordert, wenn mit dem folgenden Code benötigt:
$.getJSON('path/to/file.json').
done(function(data) {
$.each(data, function(key, zone) {
addRegion(zone, element);
});
});
Dies unabhängig von eXistDB gearbeitet, solange die JSON-Datei vorhanden ist. Was ich jetzt will, ist keine bestehende JSON-Datei zu laden, sondern eine eXist-Funktion wie app: getJSON aufzurufen, die ein dynamisch generiertes JSON-Objekt zurückgibt. Ich lese ein wenig über eXists JSON Serializer hier http://exist-db.org/exist/apps/wiki/blogs/eXist/XQuery31 und ich denke Ich werde es schaffen, ein JSON-Objekt in einer XQuery-Funktion zu erzeugen und zurückgeben, aber ich weiß nicht, wie eine solche Funktion per URL von meinem JavaScript (oder hier JQuery).
Meine gewünschte Lösung etwas würde wie folgt aussehen:
Java Script:
$.getJSON('/app-getJSON?parameter1=wert1¶meter2=wert2').
done(function(data) {
$.each(data, function(key, zone) {
addRegion(zone, element);
});
});
und dann in meinem app.xql würde ich möchte so etwas wie haben:
declare function app:getJSON($node as node(), $model as map(*), $parameter1 as xs:string?, $parameter2 as xs:string?){
(:here the JSON Object is generated from the XML collection and returned:)
};
So Die Frage kommt auf: Ist es möglich, über URL auf eine xQuery-Funktion zuzugreifen, und wenn ja, wie? Wenn nicht, wie sonst kann ich JSON-Daten anfordern, die aus meinen XML-Dateien mit JS/JQuery generiert werden? Ich weiß, das ist alles ziemlich vage und die Frage verrät, wie neu ich zu eXistDB bin, aber ich kann kein ähnliches Beispiel finden, das ich noch verstehen würde. Also vielleicht hat jemand eine Idee für mich, auch wenn es nur ein "Du solltest das wirklich lesen, dies und das" zuerst. Vielen Dank.
Entschuldigung, nur jetzt zu antworten, ich habe dieses Projekt wegen der sehr begrenzten Zeit nicht lange gemacht. Perfekte Lösung, genau das, was ich wollte: D –
Großartig, froh, es zu hören! – joewiz
Ich bin jetzt in eine Situation geraten, in der ich Dutzende dieser xq-Dateien habe, von denen jede nur eine kleine Aufgabe ausführt, wie "diese XML-Datei in der Sammlung aktualisieren" oder "diese XML-Datei von hier nach dort kopieren". Ich möchte sie als ein Modul speichern, in dem jede der Aufgaben eine Funktion ist und dann wieder ... diese Funktionen assyncronous über JavaScript aufrufen. Aber wie? Ich meine: Gibt es irgendetwas, das HTTP-Anfragen irgendwie an xquery-Funktionen "abbildet"? –