構成と各章のガイド#

これはDjango Ninjaチュートリアルシリーズの第2回です。
前回は、シリーズの全体的な方向性について説明しました。今回はさらに一歩踏み込んで、シリーズの構成と各章の配置について詳しく紹介します。
言ってみれば、この記事はシリーズ全体の見取り図です。
一般的に、構成の紹介は第1回の後半に直接配置されることが多いですが(もしあれば)、私は独立した一つの記事にすることに決めました。
その理由は他でもありません。私は読者に包括的な概要を提供したいと願い、チュートリアル全体の構成にかなりの心血を注いだからです。これにより、状況に素早く入り込み、現在自分が学習しているテーマのどの部分にいるのかを理解するのに役立ちます。
多くを語らず、一つ一つ紹介していきましょう。
GitHubサンプルプロジェクト#
本シリーズは全8章に分かれています。内容が多いため、第3章のみ小さな節に細分化されています。
以下は各章の紹介です。(各記事のタイトルや内容は若干調整される可能性がありますが、全体的な構成は変わりません)
第1章:イントロダクションとDjango Ninjaの紹介#
冒頭で、本シリーズの主旨、位置づけ、適した対象読者、そしてDjango Ninjaを学ぶ理由を紹介します。
構成編では、シリーズの配置と構成、各記事の主な内容と学習順序について説明します。
最後に、Django NinjaとDjango REST frameworkなどの基本概念、それぞれの位置づけと類似点・相違点について読者に紹介します。
- 第1回:シリーズ紹介 × 対象読者
- 第2回:構成と各章のガイド(本記事)
- 第3回:Django Ninjaの紹介——Django REST frameworkとの主な違い
第2章:サンプルプロジェクトと環境設定#
シリーズのサンプルプロジェクトであるDjango-Ninja-Tutorialを紹介し、具体的なコードの変更を通じて、学習過程での参考とします。(プロジェクトが丁寧に作られていると感じたら、どうかスター🌟を惜しまないでくださいね!🥰)

サンプルコードは新しい技術を学ぶための良き師であり、私の心血を注いだ作品でもあります 😭
読者が実際の開発環境を体験できるように、プロジェクトで使用しているPython開発ツールについても紹介します。
最後に、プロジェクトをご自身のローカル環境で実行できるように、一歩一歩手順を案内します。
第3章:Django Ninjaの基本功#
Django Ninjaのコアとなる部分であり、どのAPI開発者も熟知しておくべき基本功です。
本章は大きく3つの部分、ルーティング、リクエスト、レスポンスに分かれています。
第1節:ルーティング(Routers)#
エンドポイント(endpoints)とルーティングはAPIの出発点です。
Django Ninjaのルーティング設定方法は、従来のDjangoとは大きく異なります。そのため、ルーティングを一番最初に置き、API開発を学ぶ入り口とします。
第2節:リクエスト(HTTP Request)#
ルーティングの次はHTTPリクエストです。Django Ninjaがリクエストを処理する際の3つの重要なポイント、パスパラメータ、クエリパラメータ、リクエストボディ(body)について説明します。
中で最も重要なのはbodyであり、データの受け取りと検証にはDjango Ninjaスキーマ(すなわちPydantic BaseModel)を使用します。
- 第9回:リクエスト(一)Django NinjaでのHTTPリクエスト処理
- 第10回:リクエスト(二)パスパラメータ - パスパラメータ
- 第11回:リクエスト(三)クエリパラメータ - クエリパラメータ
- 第12回:リクエスト(四)リクエストボディとスキーマの紹介
第3節:レスポンス(HTTP Response)#
リクエストの次はレスポンスです。レスポンスでもスキーマを使用する必要がありますが、リクエストよりも変化に富んでいます。
本節では、レスポンスの基本構造、処理方法、ネストされたスキーマ、そしてResolverメソッドについて紹介します。
- 第13回:レスポンス(一)Django NinjaでのHTTPレスポンス処理
- 第14回:レスポンス(二)スキーマを使ったネストされた構造のレスポンス構築
- 第15回:レスポンス(三)なぜModelSchemaを使わないのか?——DRFに比べて、私がDjango Ninjaを好む理由
- 第16回:レスポンス(四)Resolverメソッド——フィールドデータのフォーマット
第4章:APIドキュメント#
Django Ninjaがどのようにリクエストとレスポンスを処理するのかをマスターした後、残るもう一つの鍵はAPIドキュメントです。
APIドキュメントの品質と可読性はAPIユーザーにとって極めて重要です。本章では、Django NinjaがAPIドキュメントを自動化して生成する際の応用について紹介し、私が良いと考えるいくつかの実践を共有します。
第5章:データ検証とエラー処理#
データ検証とエラー処理は、APIの安定性と信頼性に関わります。本章では、Django Ninjaで効果的にデータ検証とエラーの捕捉を行い、合理的かつ正しいレスポンスを返す方法を探求します。
- 第19回:データ検証(上)Pydanticの単一フィールド検証
- 第20回:データ検証(下)Pydanticの複数フィールド間の検証
- 第21回:エラー処理(上)HttpErrorとカスタムHTTPレスポンス
- 第22回:エラー処理(下)グローバルエラー処理——例外ハンドラーの使用
第6章:APIの高度な機能#
入門とはいえ、APIの一般的な高度な機能についても紹介する必要があります。これらの技術は、大規模プロジェクトにおける典型的な課題に対処するのに役立ちます。
各機能の実装手順を案内しつつ、それらの概念と応用シナリオに焦点を当てます。これらの内容をもとに、さらに自ら深く学習し応用していくことができます。
- 第23回:ファイルアップロード——Django UploadedFileの紹介
- 第24回:ページネーション(上)Django Ninjaの組み込みページネータ
- 第25回:ページネーション(下)カスタムページネーションクラス
- 第26回:データのクエリとフィルタリング(上)FilterSchemaの紹介
- 第27回:データのクエリとフィルタリング(下)FilterSchemaの複数フィールドクエリ
第7章:認証と単体テスト#
本章では、バックエンドプロジェクトに不可欠なテーマを紹介します。コア部分はDjango Ninjaによって実装されているわけではありませんが、バックエンド開発者にとって必須のスキルです。
第8章:シリーズの振り返りと完走の感想#
シリーズ全体を簡単に振り返り、今回の鉄人レースで執筆した感想や思いを共有します。
結び#
このガイドを通じて、シリーズ全体の構成について明確な認識を持てたことでしょう。これからの各記事では、この見取り図に従って、段階的にDjango Ninjaの学習を進めていきます。
次回は、正式にDjango Ninjaを紹介し、老舗のDjango REST frameworkと比較しながら、API開発における両者の主な機能の違いや適したシナリオについて理解を深めます。