aio-libs / aio-libs/aiohttp-debugtoolbar

Improve documentation on setting up middleware correctly

Abierto
#476 0 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
JavaScript
Estrellas
202
Forks
29
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

We need to explain how to setup the middleware correctly so that it doesn't interfere with other middlewares.

This is the function I use in my projects:
```
def setup_debugtoolbar(app: web.Application) -> None:
"""Initialise debugtoolbar for app."""
def is_error_middleware(f: _Middleware) -> bool:
return getattr(f, "func", f) == error_middleware

# Find the index of error_middleware (which may be a functools.partial).
found_middleware = next(filter(is_error_middleware, app.middlewares))

# Add debugtoolbar middleware to just before app's error handler.
# This avoids debugtoolbar interrupting other middlewares.
insert_pos = app.middlewares.index(found_middleware) + 1
app.middlewares.insert(insert_pos, aiohttp_debugtoolbar.middleware)

# setup() won't add the middleware if it's already present.
aiohttp_debugtoolbar.setup(app, check_host=False)
```

Which is called after the app's normal middlewares have already been configured.

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.