Hunchentoot メモ(2)

Hunchentoot が受け取ったHTTP リクエストの中身を見ることにします。list-request-dispacher を簡単に置き換えるだけで十分でした。

TBNL> (defvar *my-slime-output* *standard-output*)
*MY-SLIME-OUTPUT*
TBNL> (defun my-request-dispatcher (request)
        (describe request *my-slime-output*)
        (list-request-dispatcher request))
TBNL> (setf (acceptor-request-dispatcher *my-server*) 'my-request-dispatcher)
MY-REQUEST-DISPATCHER

こうしておいて、 Web ブラウザなどでHTTPリクエストを発行すると request インスタンスが SLIME の REPL に表示されました。request を大域変数に束縛しておくこともできます。

なお、 cl-webdav(http://weitz.de/cl-webdav/), clack(http://e-arrows.sakura.ne.jp/2011/02/revenge-of-lisp-in-web-by-clack.html) は、dispatcher を拡張して利用していました。