Next: , Up: API  

3.1 (web middleware)

3.1.1 Macros

Macro: apply-middlewares x

Apply a middleware chain to request and body.

This is equivalent to:

(apply (compose-middlewares mid mid* ...) (list request body))
Macro: compose-middlewares x

Return a handler procedure, made out of a set of middlewares, to be consumed by a Guile’s (web server) run-server procedure.

It requires at least one middleware procedure to be provided. If none of the middlewares produces the response, then the built-in fallback handler is executed. The fallback handler just returns two values: a response object and a response body.

The returned response object can be overriden by request-context:end-handler-response-generator parameter. See Default not found response.

The response body can be overriden by request-context:end-handler-body-generator parameter. See Default not found response body

To learn more about the middleware definition for this macro, please refer to A middleware procedure section.

3.1.2 Parameters

Parameter: request-context:end-handler-body-generator

Default value:

#<procedure default-not-found-response-body-generator (request)>
Parameter: request-context:end-handler-response-generator

Default value:

#<procedure default-not-found-response-generator (request)>

3.1.3 Procedures

Procedure: default-not-found-response-body-generator request

Return the fallback response body for the middleware chain’s end handler.

This procedure is the default value for the request-context:end-handler-body-generator parameter. So, it can be overriden by custom procecdure of one argument, a request-object. The return value must a string, a bytevector or a procedure accepting the output port, as defined by Guile’s web server documentation.

request (Guile’s (web request) object)

Return value (string, bytevector or (lambda (output-port) exp exp* ...))

Procedure: default-not-found-response-generator request

Return the fallback response object for the middleware chain’s end handler.

This procedure is the default value for the request-context:end-handler-response-generator parameter. So, it can be overriden by custom procecdure of one argument, a request-object. The return value must a response object or an alist of response headers, as defined by Guile’s web server documentation.

request (Guile’s (web request) object)

Return value (Guile’s (web response) object or an alist of response-headers)


Next: , Up: API