chickadee » spiffy-uri-match

spiffy-uri-match

Description

A library providing integration of uri-match for spiffy.

Author

Moritz Heidkamp

Requirements

Requires the uri-match, spiffy, uri-common and intarweb extensions.

Documentation

(uri-match/spiffy routes) procedure

Returns a procedure suitable for use as a spiffy handler. It will match against the HTTP method and URI of the current-request parameter. The routes argument is passed directly to make-uri-matcher of uri-match and thus must be in the format described there. If a route matches, its handler is called with current-response modified to include the headers given in the default-response-headers parameter. If no route matches, the handler will call the continue procedure passed by spiffy.

uri-match/spiffy integrates with spiffy via the vhost-map hooks.

(vhost-map `((".*" . ,(lambda (continue) (continue)))))
(vhost-map `((".*" . ,(lambda (c) (send-status 200 "TEST")))))
(vhost-map `((".*" . ,(uri-match/spiffy
			`(((/ "")
			   (GET ,(lambda (c) (c)))))))))
(vhost-map `((".*" . ,(uri-match/spiffy
			`(((/ "")
			   (GET ,(lambda (c) (send-status 200 "TEST")))))))))
(vhost-map `((".*" . ,(uri-match/spiffy
			`(((/ "")
			   (GET ,(lambda (c)
				   (send-response
				     status: 'ok
				     body: "Hello World!"
				     headers: '((content-type text/html)))))))))))
(default-response-headers [headers]) parameter

A list of headers to be used for all requests handled by handlers created through uri-match/spiffy. Defaults to

 '((content-type #(text/html ((charset . "utf-8"))))
   (accept-charset utf-8))
(redirect-to path #!key (code 302) (headers '())) procedure

Convenience procedure for sending redirects relative to the current server-root-uri.

Contents »