MicroArchitectures
H.Ueda
Programmer
フレームワークの向こう側 Vol.2 — Django/FastAPI の内部構造を読む
艶雨
【Django・FastAPI のソースコードを読み解き、「リクエストがビューに届くまで」を完全に理解する】
@app.get("/users/{user_id}") と書けばルーティングが動く——でも、その裏で何が起きているか説明できますか?
本書は、Django と FastAPI がリクエストをどのように受け取り、どのような経路でビューに届けるのかを、実際のソースコードを追いながら確かめます。
■ 本書で学べること ・Django の WSGI エントリポイントから BaseHandler._get_response() まで、リクエスト処理フロー全体 ・URL ディスパッチャの仕組み、ミドルウェアチェーンの実装パターン ・WSGI の限界と ASGI が生まれた理由(WebSocket・長時間接続・並行処理) ・scope/receive/send という ASGI の3要素を使った最小アプリの実装 ・FastAPI のルーティングが Starlette の Router クラスに委譲される仕組み ・Pydantic による自動バリデーション・シリアライズの裏側 ・Django の非同期対応と sync/async ブリッジの使いどころと限界
■ 本書の構成(5章) 第6章:Django の WSGI エントリポイントとリクエスト処理フロー、URL 解決、ミドルウェアチェーン 第7章:WSGI の限界、ASGI の設計思想、WebSocket・lifespan の仕組み 第8章:素の ASGI 実装、ルーティング、ASGI ミドルウェアの実装 第9章:FastAPI の ASGI アダプタ、Pydantic 統合、DI システム、OpenAPI 自動生成 第10章:Django の非同期対応、ORM の async/await、sync_to_async・async_to_sync
■ こんな方におすすめ ・django-admin startproject で始めたが、フレームワークの内側を覗いたことがない方 ・FastAPI を使っているが、Starlette や ASGI との関係がよくわからない方 ・「ミドルウェアを書く」「カスタムルーターを作る」といった一歩進んだ実装をしたい方 ・LLM が生成したコードの妥当性を自分で判断できるようになりたい方
■ 前提知識 Django または FastAPI でシンプルな Web アプリを動かした経験があれば読み進められます。 Vol.1 を読んでいなくても、HTTP リクエスト/レスポンスの構造と WSGI/ASGI の大まかな役割を知っていれば問題ありません。
■ 著者プロフィール 40 年以上のプログラミング経験を持つエンジニア。LLM を開発パートナーとして活用しながら、フレームワークの内部を実際のコードで丁寧に解説します。
本シリーズは全3巻構成です。 Vol.1「HTTP/WSGI/ASGI 基礎」では HTTP と TCP ソケットから WSGI/ASGI 仕様まで扱います。 Vol.3「Web システム設計と運用」では Gunicorn 選定・並行処理・本番デプロイ・セキュリティを扱います。
有償章を読むには
有償章の閲覧には書籍のご購入が必要です。
目次
- 1 Django を WSGI 視点で見る 無料
- 2 なぜ ASGI が必要になったのか 無料
- 3 最小の ASGI HTTP アプリ 無料
- 4 FastAPI を ASGI 視点で見る 無料
- 5 Django は ASGI にどう対応しているか 無料