PyCon JP 2026

8/22 (土) · 14:30 – 15:00 @ ダリア1

Talk中級JAアプリケーション開発

詳解ASGIミドルウェア シンプルながらも奥が深いASGIミドルウェアを使いこなす

Rei Suyama

概要

PythonにはASGIと呼ばれる非同期Webインターフェース仕様があり、FastAPI、Django、Starletteなど多くのWebアプリケーションフレームワークはこのASGIの仕様に沿ったASGIアプリケーションとして動作しています。そのため、Pythonで本格的なWebアプリケーションを開発するためには、ASGIに対する理解は極めて重要です。

本発表で取り上げるASGIミドルウェアは、すべてのリクエストに対する共通処理を実装できるASGIのサブ仕様のひとつです。ASGIサーバに対してASGIアプリケーションのように振る舞い、ASGIアプリケーションに対してASGIサーバのように振る舞うASGIミドルウェアは、ASGIの全てが詰まっていると言っても過言ではありません。

本発表ではシンプルながらも奥が深いASGIミドルウェアについて、実践的なコード例を交えて解説します。現時点では以下の流れを想定していますが、具体的なパターンの詳細などは一部変更する可能性もあります。

  • ASGIの概要
  • ASGIミドルウェアの定義
  • ASGIミドルウェアの実装パターンと実装時の注意点
    • 基本編
      • エンドポイントの処理時間計測: シンプルな例
      • ヘルスチェックへの応答: ミドルウェアでのレスポンス返却
      • HTTPヘッダーを用いた認証: リクエストの検証、リクエストハンドラとのデータ共有
    • 応用編
      • HTTPボディの利用: ストリームの再構築
      • アプリケーション起動時、終了時の処理: Lifespan
      • WebSocketの利用
  • まとめ

ASGIミドルウェアはアイディア次第で用途が広がります。 そのしくみを正確に理解し、使いこなしていきましょう。

スピーカーについて

Rei Suyama

Rei Suyama

尾道が好きになり東京から尾道の向島に引っ越してきたフルリモートのプログラマ。学生時代からずっとPython好き。シンプルなコード、シンプルな設計を目指してます。最近はRustもよく書いてる。「Python実践入門」の著者。