Lisp-Service-Client-Package
Das Lisp-Service-Client-Package ist eine in Java geschriebene Erweiterung zum Lisp-Package. Es ermöglicht den Aufruf von Webservices aus einem Lisp Programm. Das Package ist als Open Source veröffentlicht.
Die Funktionen des Lisp-Service-Client-Package werden im Folgenden erläutert.
http-get
Die http-get Funktion erwartet drei Argumente:
• die URL des aufzurufenden Webservices,
• eine Assoziationsliste, mit der Argumente an den Webservice übergeben werden können und
• ein http-state Objekt oder nil.
Die Paare aus der Assoziationsliste werden zum Query-Teil der URL. Das http-state Objekt speichert Cookies. Diese werden beim Aufruf mitgegeben. Werden mit der Antwort Cookies vom Server übermittelt, werden diese im http-state Objekt gespeichert. Als Antwort ist JSON und XML zulässig. Antworten werden geparst und in S-Expressions umgeformt. Diese S-Expression ist dann das Resultat des Aufrufs von http-get.
http-post
Die http-post Funktion erwartet die gleichen Argumente wie die http-get Funktion. Es wird jedoch kein Get-Request ausgeführt, sondern ein Post-Request. Im Post-Request werden die Daten aus der Assoziationsliste im Format application/www-form-urlencoded übermittelt. Die Verarbeitung der Response erfolgt wie bei der Funktion http-get.
make-http-state
Diese Funktion erwartet keine Argumente. Sie erzeugt ein http-state Objekt, das Cookies aufnehmen kann. Mit dem http-state Objekt kann der Zustand über mehrere aufeinander folgende Aufrufe von http-get gerettet werden.
Einbinden ins Lisp-Package
In das Lisp-Package können die Funktionen aus dem Lisp-Service-Client-Package eingebunden werden, indem der folgende Lisp-Code ausgeführt wird:
(setq http-get (make-combinator "lisp.client.combinator.HttpGet" nil))
(setq http-post (make-combinator "lisp.client.combinator.HttpPost" nil))
(setq make-http-state (make-combinator "lisp.client.combinator.MakeHttpState" nil))
Download
Die Quelltexte unterliegen der Modified Artistic License v1 finden sich in der Version v4 in der Jar-Datei unter dieser URL: http://www.qrst.de/downloads/lispserviceclientsrc.jar
Zusätzlich wird noch das Collections-Package, das Lisp-Package, das Property-Set-Package und das XML-Utils-Package benötigt.