spiffy-uri-match

  1. spiffy-uri-match
    1. Description
    2. Author
    3. Repository
    4. Requirements
    5. Documentation

Description

A library providing integration of uri-match for spiffy.

Author

Moritz Heidkamp

Repository

This egg is hosted on the CHICKEN Subversion repository:

https://anonymous@code.call-cc.org/svn/chicken-eggs/release/5/spiffy-uri-match

If you want to check out the source code repository of this egg and you are not familiar with Subversion, see this page.

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.