aio-libs / aio-libs/aiohttp-debugtoolbar

Improve documentation on setting up middleware correctly

オープン
#476 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
JavaScript
スター
202
フォーク
29
PR マージ指標
30日以内にマージされた PR はありません

説明

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.

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。