Django Ninja 02:架構與章節導覽
文章目錄
2024 iThome 鐵人賽
這是 Django Ninja 系列教學的第 2 篇。
上一篇中,我們講述了系列的整體方向。現在,我將進一步深入,為你詳細介紹系列的架構與各個章節安排。
可以說,本文就是整個系列的藍圖。
一般而言,架構介紹通常會直接放在第一篇的後半段(如果有的話),但我決定獨立成一篇。
原因無他,我在整個教學架構上花費了相當的心思,希望為讀者提供一個全面的概覽。這有助於你快速進入狀況,並了解自己目前正在學習主題哪一個部分。
話不說多,讓我們一一介紹。
本系列共分為八章,只有第三章有細分小節——因為內容較多。
以下是各章節介紹。(各篇名稱與內容仍可能會有小幅調整,但整體架構不變)
第一章:導讀與 Django Ninja 介紹
開篇介紹本系列的主旨、定位,適合的目標讀者,以及學習 Django Ninja 的理由。
架構篇中,說明系列的安排與組成、每篇文章的主要內容與學習順序。
最後為讀者介紹 Django Ninja 與 Django REST framework 等基本概念,包括彼此的定位與異同。
- 卷 1:系列導讀 × 目標讀者
- 卷 2:架構與章節導覽(本篇)
- 卷 3:Django Ninja 介紹——與 Django REST framework 主要區別
第二章:範例專案與環境設定
介紹系列的範例專案——Django-Ninja-Tutorial,透過具體的程式碼改動,作為學習過程中的參考。(覺得專案有用心的話,千萬不要吝嗇你的 🌟 哦!🥰)
範例專案:Django-Ninja-Tutorial
範例程式碼是學習新技術的良師益友,也是我的嘔心瀝血之作 😭
我們也會介紹專案所使用的 Python 開發工具,讓讀者能體驗真實的開發環境。
最後,我們會一步一步帶著你,讓專案能夠在你的本機環境運行。
第三章:Django Ninja 基本功
Django Ninja 的核心部分,任何一個 API 開發者都需要熟悉的基本功。
本章總共分成三大部分:路由、請求與回應。
第一節:路由(Routers)
端點(endpoints)與路由是 API 的起點。
Django Ninja 的路由設定方式,與傳統 Django 有很大不同。因此,我們將路由放在第一位,作為學習 API 開發的入口。
第二節:請求(HTTP Request)
路由之後是 HTTP 請求,講述 Django Ninja 處理請求的三大重點:路徑參數、查詢參數和請求主體(body)。
其中最重要的是 body,將使用 Django Ninja Schema(即 Pydantic BaseModel)來進行資料接收與驗證。
- 卷 9:請求(一)Django Ninja 處理 HTTP 請求
- 卷 10:請求(二)路徑參數 - Path Parameters
- 卷 11:請求(三)查詢參數 - Query Parameters
- 卷 12:請求(四)Request Body 與 Schema 介紹
第三節:回應(HTTP Response)
請求之後是回應,回應仍需要使用 Schema,但變化比請求更多。
本節將介紹回應的基本架構、處理方式、巢狀 Schema,以及 Resolver 方法。
- 卷 13:回應(一)Django Ninja 處理 HTTP 回應
- 卷 14:回應(二)用 Schema 建立巢狀結構回應
- 卷 15:回應(三)為何不用 ModelSchema?——相比 DRF,我更偏愛 Django Ninja 的理由
- 卷 16:回應(四)Resolver 方法——欄位資料格式化
第四章:API 文件
掌握了 Django Ninja 如何處理請求與回應後,剩下的另一關鍵就是 API 文件。
API 文件的品質與可讀性對 API 使用者至關重要,本章將介紹 Django Ninja 在自動化產生 API 文件中的應用,並分享我認為的一些好的實踐。
第五章:資料驗證與錯誤處理
資料驗證和錯誤處理關係到 API 的穩定與可靠。本章探討如何在 Django Ninja 中有效進行資料驗證和錯誤捕捉,並給出合理、正確的回應。
- 卷 19:資料驗證(上)Pydantic 單一欄位驗證
- 卷 20:資料驗證(下)Pydantic 跨欄位驗證
- 卷 21:錯誤處理(上)HttpError 與自定義 HTTP 回應
- 卷 22:錯誤處理(下)全域錯誤處理——使用 Exception Handlers
第六章:API 進階功能
雖說是入門,但我們仍有必要介紹 API 的常見進階功能。這些技術將協助你應對大型專案中的典型挑戰。
我們會引導你完成每個功能的實作,同時聚焦展示它們的概念與應用場景。你可以根據這些內容,進一步自行深入學習與應用。
- 卷 23:檔案上傳——Django UploadedFile 介紹
- 卷 24:分頁(上)Django Ninja 的內建分頁器
- 卷 25:分頁(下)自定義分頁類別
- 卷 26:資料查詢與過濾(上)FilterSchema 介紹
- 卷 27:資料查詢與過濾(下)FilterSchema 多欄位查詢
第七章:身分認證與單元測試
本章將介紹後端專案中不可或缺的主題,雖然核心部分不是由 Django Ninja 實作,但對於後端開發者來說,是必須掌握的技能。
第八章:系列回顧與完賽心得
簡單回顧整個系列,並分享我在本次鐵人賽的創作心得與感想。
結語
通過這篇導覽,你已經對整個系列的架構有了清晰的認識。接下來的每一篇文章都會按照這個藍圖,循序漸進地帶領你學習 Django Ninja。
下一篇,我們將正式介紹 Django Ninja,並與老牌的 Django REST framework 進行比較,了解兩者在 API 開發的主要功能差異與適用場景。