You are looking at historical revision 39572 of this page. It may differ significantly from its current revision.

Outdated egg!

This is an egg for CHICKEN 4, the unsupported old release. You're almost certainly looking for the CHICKEN 5 version of this egg, if it exists.

If it does not exist, there may be equivalent functionality provided by another egg; have a look at the egg index. Otherwise, please consider porting this egg to the current version of CHICKEN.

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

[procedure] (uri-match/spiffy routes)

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)))))))))))
[parameter] (default-response-headers [headers])

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))
[procedure] (redirect-to path #!key (code 302) (headers '()))

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