Raw middleware
In Grip raw middlewares are mentioned as handlers, when creating a handler you include the HTTP::Handler
module and define a call/1 function.
class DemoHandler
include HTTP::Handler
def call(context : HTTP::Server::Context) : HTTP::Server::Context
# Mutate the context and pass it on to the next handler.
end
end
class Application < Grip::Application
def initialize
super(environment: "development")
# By default the router has 4 entries, if you insert a handler
# before the exception handler any exception that might occur in
# your newly inserted handler will not be handled and might crash the application.
#
# [
# exception_handler,
# pipeline_handler,
# websocket_handler,
# http_handler,
# ]
router.insert(1, DemoHandler.new)
end
end