API 範例專案介紹:忍者論壇
2024 iThome 鐵人賽
這是 Django Ninja 系列教學的第 4 篇。
在第一章中,我們對 Django Ninja 做了全方位的介紹,並且分析了它與 Django REST framework 的主要區別。
相信你對 Django Ninja 已有了一定的了解。
接下來,我們將進入第二章:專案介紹與設定。
本章重點
我們將透過一個 CRUD API 範例專案,幫助你在實踐中運用 Django Ninja 的概念。
本章將對專案概念進行介紹,包括模型設計與現實世界中的對應。(卷 4)
接著介紹專案使用的 Python 開發工具(卷 5)。最後會手把手帶你,安裝專案到本機並確保它正常運行(卷 6)。
其餘有關 API 的程式碼,將在第三章陸續介紹與實作。
快速導覽
👉 完整系列目錄:點此查看
👉 程式碼範例:GitHub 範例專案
忍者論壇
為了讓你更好地理解 Django Ninja 並能夠進行實際操作,我們設計了一個範例專案——忍者論壇。
這是一個討論區,讓開發者交流 Django Ninja 使用心得(而不是如何成為忍者)。
歡迎加入忍者論壇
這是專案的 GitHub 網址,你可以把它加到書籤,隨時參閱程式碼,加深學習印象。
這個專案將引導你如何使用 Django Ninja 來構建 API,展示其中的知識與實踐。
設計理念
專案的主題是「忍者論壇」,它是一個基本的討論區系統,具備使用者發表文章和留言評論的核心功能。
這個設計既簡單又實用,讓你能專注於 Django Ninja 核心,而不會被過多的額外功能分散注意力。
論壇的兩大基本功能,也是我們實現 API 的重點所在:
- 使用者系統:使用者可以註冊、登入、登出,並查看自己的文章。
- 發文系統:使用者可以建立、修改、刪除文章。
透過這個專案,你將學會如何使用 Django Ninja 快速建立相關的 API。
我們會以「發文」為中心,逐步實現不同的 API。
三個設計原則
作為一個「範例」專案,忍者論壇的設計目的,是為了讓你透過實際的操作,深入了解 Django Ninja 的基本概念與應用。
因此,我們會將專案內容嚴格控制在教學所需的範圍內,以確保學習上的專注,而不會被過多的細節所干擾。
簡言之,專案遵循以下三個設計原則。
一、最小化設計原則
所謂「最小化設計」,即盡可能確保所有實作都是教學所必須的。
我們甚至會重複使用同一個 API 作為範例,演示不同階段的功能實現。
這樣的設計可以讓教學內容保持簡潔,同時又能逐步深入 Django Ninja 的各種特性。
二、簡單易懂的程式碼結構
範例專案的程式碼結構應該是簡單明瞭的,讓讀者能快速了解各部分的邏輯與關聯。
相比於實際工作中的專案,範例專案更注重程式碼的清晰度與一望即知,避免不必要的複雜設計或抽象層次。
這意味著:
- 我們不會引入過多的元件拆分或模組化設計,而是直接將功能展示出來。
- 每個功能的實現都力求簡潔,重點放在如何實現。
這樣的設計能讓你快速理解每個程式碼片段的作用,並輕鬆應用到自己的專案中。
三、簡單易用的環境
範例專案需要一個簡單易用的環境,讓學習者可以立即運行專案並測試所學內容。
工作上的專案,會涉及到很多外部依賴,但範例專案的設計則側重於讓學習者能夠快速驗證所學到的概念。
這意味著:
- 專案不依賴完整的部署,只需要簡單的本地設定,就能快速運行和測試,讓讀者能夠立刻看到 API 的回應結果。
我們緊扣著 API 教學本身,其餘外部環節,可能需要你自行實踐與補足。
下一步
了解了範例專案的設計後,接下來我們將進入開發環境介紹。
開發專案時,合適的工具能讓工作事半功倍,下一篇將介紹常用的 Python 開發工具,比如虛擬環境管理與程式碼格式化。
這些工具不僅能幫助你高效管理專案,還能大幅提升程式碼的品質與一致性。我相信,熟練掌握這些工具,是現代開發者的基本功。