コンテンツにスキップ

APIサンプルプロジェクトの紹介#

2024 iThome鉄人レース

これはDjango Ninjaチュートリアルシリーズの第4回です。

第1章では、Django Ninjaについて包括的に紹介し、Django REST frameworkとの主な違いを分析しました。

これでDjango Ninjaについて一定の理解を得られたと信じています。

次は第2章、プロジェクトの紹介と設定に入ります。

本章の要点#

CRUD APIのサンプルプロジェクトを通じて、Django Ninjaの概念を実践的に適用できるようにお手伝いします。

本章では、モデル設計と現実世界での対応を含め、プロジェクトの概念について紹介します。(第4回)

続いて、プロジェクトで使用しているPython開発ツールを紹介します(第5回)。最後に、プロジェクトをご自身のローカルマシンにインストールし、正常に動作することを確認するまでを手取り足取りご案内します(第6回)。

APIに関するその他のコードは、第3章以降で順次紹介し実装していきます。

GitHubサンプルプロジェクト#

👉 Django-Ninja-Tutorial


忍者フォーラム#

Django Ninjaをよりよく理解し、実際に操作できるようにするために、一つのサンプルプロジェクト——忍者フォーラムを設計しました。

これは、開発者がDjango Ninjaの使用体験を交流するための掲示板です(忍者にどうやったらなれるかではありません)。

忍者フォーラムへの参加を歓迎します

これがプロジェクトのGitHubのURLです。ブックマークに追加して、いつでもコードを参照し、学習の印象を深めることができます。

このプロジェクトは、Django Ninjaを使ってAPIを構築する方法を案内し、その中にある知識や実践を示します。

設計理念#

プロジェクトのテーマは「忍者フォーラム」です。これは基本的な掲示板システムであり、ユーザーが記事を投稿したりコメントを残したりするコア機能を備えています。

この設計はシンプルでありながら実用的であり、余分な機能に気を取られることなく、Django Ninjaのコアに集中できるようになっています。

フォーラムの2つの基本機能は、私たちがAPIを実装する上での重要なポイントでもあります。

  • ユーザーシステム:ユーザーは登録、ログイン、ログアウトができ、自分の記事を閲覧できます。
  • 投稿システム:ユーザーは記事の作成、修正、削除ができます。

このプロジェクトを通じて、Django Ninjaを使用して関連するAPIを素早く構築する方法を学びます。

私たちは「投稿」を中心にして、さまざまなAPIを段階的に実装していきます。


3つの設計原則#

「サンプル」プロジェクトとして、忍者フォーラムの設計目的は、実際の操作を通じてDjango Ninjaの基本概念と応用を深く理解してもらうことです。

そのため、過度な詳細による干渉を避け、学習に集中できるように、プロジェクトの内容をチュートリアルに必要な範囲に厳密に制限します。

要するに、プロジェクトは以下の3つの設計原則に従っています。

一、最小化設計の原則#

最小化設計」とは、すべての実装がチュートリアルにおいて必須であることを可能な限り保証することです。

私たちはあえて同じAPIをサンプルとして繰り返し使用し、異なる段階での機能実装をデモンストレーションします。

このような設計により、チュートリアルの内容をシンプルに保ちつつ、Django Ninjaのさまざまな特性を段階的に深く探求することができます。

二、シンプルで分かりやすいコード構造#

サンプルプロジェクトのコード構造はシンプルで明確であるべきです。これにより、読者は各部分のロジックや関連性を素早く理解できるようになります。

実際の仕事でのプロジェクトに比べ、サンプルプロジェクトはコードの明確さと一目で分かることをより重視し、不必要な複雑な設計や抽象化のレイヤーを避けています

これはつまり:

  • コンポーネントの過度な分割やモジュール化の設計を導入せず、機能を直接示します。
  • 各機能の実装はできるだけシンプルに努め、どのように実装するかに焦点を当てます。

このような設計により、各コードスニペットの役割を素早く理解し、自分のプロジェクトに簡単に応用することができます。

三、シンプルで使いやすい環境#

サンプルプロジェクトにはシンプルで使いやすい環境が必要です。これにより、学習者はプロジェクトをすぐに実行し、学んだ内容をテストすることができます。

仕事でのプロジェクトでは、多くの外部依存関係が関わってきますが、サンプルプロジェクトの設計は、学習者が学んだ概念を素早く検証できるようにすることに重点を置いています。

これはつまり:

  • プロジェクトは完全なデプロイメントに依存せず、簡単なローカル設定だけで素早く実行およびテストができ、読者がAPIの応答結果をすぐに見られるようにします。

このチュートリアルではAPIそのものに焦点を絞っています。それ以外の周辺領域については、必要に応じて各自で実践し、補ってください。


次のステップ#

サンプルプロジェクトの設計を理解したところで、次は開発環境の紹介に入ります。

プロジェクトを開発する際、適切なツールを使用すれば作業が半分の労力で倍の成果をもたらします。次の記事では、仮想環境管理やコードフォーマットなど、一般的に使用されるPython開発ツールを紹介します。

これらのツールは、プロジェクトを効率的に管理するのに役立つだけでなく、コードの品質と一貫性を大幅に向上させます。これらのツールを熟練して扱うことは、現代の開発者の基本功であると私は信じています。