Middleware classes¶
MicroPie defines abstract base classes for writing middleware. Use these classes to intercept requests, implement custom routing, authentication, logging and other cross‑cutting concerns. See the Writing middleware guide for practical examples.
HttpMiddleware¶
- class HttpMiddleware¶
Base class for HTTP middleware. Subclasses must implement two asynchronous methods:
- before_request(request)¶
Called before the HTTP handler runs. request is the
Requestobject. Return a dictionary{"status_code": status, "body": body, "headers": headers}to short‑circuit the request and send a response immediately. To continue processing, returnNone.
- after_request(request, status_code, response_body, extra_headers)¶
Called after the handler has completed but before the response is sent. You may return a dictionary with updated
status_code,bodyandheaders. ReturnNoneto leave the response unchanged.
WebSocketMiddleware¶
- class WebSocketMiddleware¶
Base class for WebSocket middleware. Subclasses must implement these methods:
- before_websocket(request)¶
Called before a WebSocket handler runs. request is a
WebSocketRequestobject. Return a dictionary{"code": code, "reason": reason}to reject the connection with the given close code and reason. ReturnNoneto allow the connection.
- after_websocket(request)¶
Called after the WebSocket handler completes. Use this to release resources or log activity. Return value is ignored.