Hallo in die Runde,
vielleicht kann mir hierzu jmd einen Tipp geben.
Ich nutze die Rest API um via post xqueries (mit python requests) zu machen - das klappt mit z.B. replace auch problemlos.
Gerne würde ich jedoch auch insert nutzen - allerdings bekomme ich hier grundsätzlich eine 500 response.
Die query mache ich gemäß der Doku nach dem Beispielschema: insert nodes (<phone/>, <mail/>) into //name
In den Logs von dba sehe ich hierzu nichts. Ich bekomme auch sonst keine Info auf der shell in Form einer Fehlermeldung.
Der Test Request sieht wie folgt aus:
xq = '<query><text> insert node <test/> into //object[@id="574"]</text></query>' url = 'http://localhost:8080/rest/ids/ObjectIDs.xml' header = {'Media-Type': 'application/xml', 'charset':'utf-8'} res = requests.post(url, headers=header, data=xq, auth=_auth.getBaseXAuth())
Hat hierzu vielleicht jemand Anmerkungen / Ideen?
Vielen Dank im Voraus
Alexander Liedtke
Hallo,
zur Info - durch wrappen der query in CDATA string, funktioniert alles wie gewünscht und das Problem ist gelöst.
Ist wahrscheinlich grundsätzlich empfehlenswert CDATA für queries via REST API zu nutzen....
Bsp. ;
xq = '<query><text><![CDATA[ insert node <test>foo</test> ]]>into //data/object[1]</text></query>'
Mit besten Grüssen
Alexander Liedtke
________________________________ Von: BaseX-Talk basex-talk-bounces@mailman.uni-konstanz.de im Auftrag von Liedtke, Alexander A.Liedtke@smb.spk-berlin.de Gesendet: Montag, 26. August 2024 18:00:40 An: basex-talk@mailman.uni-konstanz.de Betreff: [basex-talk] xquery insert via REST API
Hallo in die Runde,
vielleicht kann mir hierzu jmd einen Tipp geben.
Ich nutze die Rest API um via post xqueries (mit python requests) zu machen - das klappt mit z.B. replace auch problemlos.
Gerne würde ich jedoch auch insert nutzen - allerdings bekomme ich hier grundsätzlich eine 500 response.
Die query mache ich gemäß der Doku nach dem Beispielschema: insert nodes (<phone/>, <mail/>) into //name
In den Logs von dba sehe ich hierzu nichts. Ich bekomme auch sonst keine Info auf der shell in Form einer Fehlermeldung.
Der Test Request sieht wie folgt aus:
xq = '<query><text> insert node <test/> into //object[@id="574"]</text></query>' url = 'http://localhost:8080/rest/ids/ObjectIDs.xml' header = {'Media-Type': 'application/xml', 'charset':'utf-8'} res = requests.post(url, headers=header, data=xq, auth=_auth.getBaseXAuth())
Hat hierzu vielleicht jemand Anmerkungen / Ideen?
Vielen Dank im Voraus
Alexander Liedtke
basex-talk@mailman.uni-konstanz.de