abstract class Marten::Middleware

Overview

Represents an abstract middleware.

A middleware is a simple class that implements a #call method that can be hooked into Marten's request/response lifecycle. Middlewares can be used to perform simple alterations based on the incoming HTTP request and the returned HTTP response: for example they can be used to activate a specific I18n locale, to identify a currently logged in user, etc.

Direct Known Subclasses

Defined in:

marten/middleware.cr
marten/middleware/asset_serving.cr
marten/middleware/content_security_policy.cr
marten/middleware/flash.cr
marten/middleware/gzip.cr
marten/middleware/i18n.cr
marten/middleware/method_override.cr
marten/middleware/referrer_policy.cr
marten/middleware/session.cr
marten/middleware/ssl_redirect.cr
marten/middleware/strict_transport_security.cr
marten/middleware/x_frame_options.cr

Instance Method Summary

Instance Method Detail

abstract def call(request : Marten::HTTP::Request, get_response : Proc(Marten::HTTP::Response)) : Marten::HTTP::Response #

Calls the middleware for a given HTTP request and returns a HTTP response.

This method must be implemented by subclasses: it takes a request argument (the current HTTP request) and a get_response proc that allows to get the final response. This proc might actually call the next middleware in the chain of configured middlewares, or the final matched handler. That way, the current middleware have the ability to intercept any incoming request and the associated response, and to modify them if applicable.


[View source]
def next : Nil | Middleware #

:nodoc


[View source]
def next=(next __arg0 : Nil | Middleware) #

:nodoc


[View source]