i2y
FastAPIは「Pydanticモデル+デコレータ=型安全なREST API」という魔法のような開発体験を実現し、Python Web開発に革命をもたらしました。この「型を書けば全てが自動化される」という開発体験を、gRPC/Connect RPCの世界に転写するとどうなるでしょうか?
本セッションでは、その思考実験に基づき「Pydanticによる型駆動開発」をgRPC/Connect RPCへ応用した拙作 pydantic-rpc (https://github.com/i2y/pydantic-rpc) を通じて、最新のRPC技術とPythonの型システムを橋渡しします。難解に思われがちなgRPCやConnect RPCを、FastAPIやPydanticを少し知っている程度の方ならどなたでも理解できる形で解説し、protoファイルなしで今すぐ始められる方法を実演します。
FastAPIは「Pydanticモデル+デコレータ=型安全なREST API」という魔法のような開発体験を実現し、Python Web開発に革命をもたらしました。この「型を書けば全てが自動化される」という開発体験を、gRPC/Connect RPCの世界に転写するとどうなるでしょうか?
本セッションでは、その思考実験に基づき「Pydanticによる型駆動開発」をgRPC/Connect RPCへ応用した拙作 pydantic-rpc (https://github.com/i2y/pydantic-rpc) を通じて、最新のRPC技術とPythonの型システムを橋渡しします。難解に思われがちなgRPCやConnect RPCを、FastAPIやPydanticを少し知っている程度の方ならどなたでも理解できる形で解説し、protoファイルなしで今すぐ始められる方法を実演します。
| 分 | 内容 | |---|---| | 0–5 | なぜ今、RPCなのか?<br>• マイクロサービス時代のAPI通信の課題<br>• FastAPIが示した「型駆動開発」の価値を振り返る | | 5–12 | ライブコーディング:FastAPIの感覚でgRPC開発<br>① おなじみのPydanticモデル定義(User, Task)<br>② pydantic-rpcでRPCサービス化(5行のコード)<br>③ 実行して動作確認(grpcurl & Pythonクライアント) | | 12–18 | 裏側で何が起きているか<br>• Pydantic→Protobuf自動変換の仕組み<br>• 型安全性がもたらす開発者体験の向上<br>• つまずきポイントと解決策の共有 | | 18–24 | 実践での使い分け<br>• いつREST?いつRPC?実例で理解する判断基準<br>• 同じPydanticモデルで両方のAPIを提供する設計パターン<br>• Connect RPCでブラウザから直接呼び出せるRPCの実現 | | 24–30 | まとめ & Q&A ―「Pythonで最新のAPI技術を使いこなすために」 |
gRPCは高性能で型安全なRPC技術として注目され続けていますが、「protoファイルの記述が面倒」「学習コストが高い」という理由で敬遠されがちです。Connect RPCはgRPCをWebフレンドリーにした技術ですが、やはりprotoファイルは必要です。一方で、FastAPIの登場により、多くのPython開発者が型駆動開発の恩恵を実感しています。
この二つの世界を橋渡しすることで、より多くのPython開発者が最新のRPC技術(gRPC/Connect RPC)を活用できるようになると信じています。pydantic-rpcの開発を通じて得た知見を共有し、皆さまのAPI開発選択肢の拡大に貢献できれば幸いです。
プロフィール