kashew_nuts

kashew_nuts

Django NinjaによるAPI開発の効率化とリプレースの実践

ラン#pyconjp_4中級日本語
15:00 - 15:3030min
DAY 1
09/26
FRI

私が現在携わっているWebサービスでは、10年以上にわたり外部向けAPIを複数回リプレースしながら提供してきました。従来はDjango上に構築された独自のAPI実装を用いていましたが、機能追加や仕様変更のたびに複雑化が進み、開発効率や保守性に課題を抱えていました。

そこで今回、Pythonの型ヒントを活かしながら軽量かつ高速に開発できる「Django Ninja」によるAPIアーキテクチャへと段階的にリプレースしました。

この発表では、Django Ninjaを選定した理由や、実際の移行プロセス、運用面での工夫、そして開発・運用の効率化に繋がった具体的な知見を紹介します。DjangoでAPIを開発・運用している方にとって、明日から役立つ実践的なノウハウをお持ち帰りいただける内容です。


トーク詳細 / Description

発表の構成(予定)

  1. はじめに

    • 自己紹介・会社紹介
    • 発表の背景とゴール
    • 想定する聞き手
  2. Django Ninjaとは何か

    • Django REST frameworkやFastAPIとの比較
    • Django Ninjaの特徴(型ヒント、OpenAPI連携、FastAPI互換の設計思想など)
  3. なぜDjango Ninjaを選んだのか

    • 比較検討した選択肢(独自実装・DRF・FastAPIなど)
    • パフォーマンス、学習コスト、開発効率、保守性の観点からの選定理由
  4. Django Ninjaを用いた実践例

    • 型ヒントで定義するリクエスト・レスポンススキーマ
    • 自動生成されるOpenAPIドキュメントの活用
    • 認証・認可(API Key, JWT など)の実装方法
    • スロットリングやページネーションの設計
    • テスト戦略(ユニット・統合テスト)
  5. 段階的なリプレース戦略

    • 既存の独自実装との共存
    • 互換性維持の工夫
    • 移行計画と影響範囲のコントロール
  6. まとめとQ&A

    • 得られた効果と課題
    • 今後の展望(型安全な開発・APIクライアント自動生成など)

この題材を選んだ理由やきっかけ

  • 大規模APIの開発・運用を継続する中で、拡張性・保守性に課題を感じていたこと
  • Django Ninjaを導入したことで、型安全かつ高速なAPI開発が可能になり、開発効率が向上した経験を他の開発者と共有したかったため
  • 従来の独自実装に限界を感じている開発者や、次の選択肢を探している方の参考になればと思ったから

オーディエンスが持って帰れる具体的な知識やノウハウ

  • Django Ninjaを使ったAPI開発の設計とベストプラクティス
  • Django REST frameworkやFastAPIとの使い分けのポイント
  • 既存プロジェクトでの段階的なAPIリプレース戦略
  • スキーマ駆動開発やドキュメント管理の効率化手法
  • 認証・認可・スロットリング・テストの具体的な実装例

オーディエンスに求める前提知識

  • DjangoでのWebアプリケーション開発の基礎知識
  • RESTful APIに関する一般的な理解(HTTPメソッド、ステータスコード、JSON形式など)
  • Pythonの型ヒント(Type Hints)に関する基礎知識(あれば望ましいが、発表内でも軽く補足予定)
kashew_nuts

kashew_nuts

プロフィール