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.