2024 iThome 鐵人賽2024 iThome 鐵人賽

這是 Django Ninja 系列教學的第 2 篇。

上一篇中,我們講述了系列的整體方向。現在,我將進一步深入,為你詳細介紹系列的架構與各個章節安排。

可以說,本文就是整個系列的藍圖。

一般而言,架構介紹通常會直接放在第一篇的後半段(如果有的話),但我決定獨立成一篇。

原因無他,我在整個教學架構上花費了相當的心思,希望為讀者提供一個全面的概覽。這有助於你快速進入狀況,並了解自己目前正在學習主題哪一個部分。

話不說多,讓我們一一介紹。


本系列共分為八章,只有第三章有細分小節——因為內容較多。

以下是各章節介紹。(各篇名稱與內容仍可能會有小幅調整,但整體架構不變)

第一章:導讀與 Django Ninja 介紹

開篇介紹本系列的主旨、定位,適合的目標讀者,以及學習 Django Ninja 的理由。

架構篇中,說明系列的安排與組成、每篇文章的主要內容與學習順序。

最後為讀者介紹 Django Ninja 與 Django REST framework 等基本概念,包括彼此的定位與異同。

第二章:範例專案與環境設定

介紹系列的範例專案——Django-Ninja-Tutorial,透過具體的程式碼改動,作為學習過程中的參考。(覺得專案有用心的話,千萬不要吝嗇你的 🌟 哦!🥰)

範例專案: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)來進行資料接收與驗證。

第三節:回應(HTTP Response)

請求之後是回應,回應仍需要使用 Schema,但變化比請求更多。

本節將介紹回應的基本架構、處理方式、巢狀 Schema,以及 Resolver 方法。


第四章:API 文件

掌握了 Django Ninja 如何處理請求與回應後,剩下的另一關鍵就是 API 文件。

API 文件的品質與可讀性對 API 使用者至關重要,本章將介紹 Django Ninja 在自動化產生 API 文件中的應用,並分享我認為的一些好的實踐。

第五章:資料驗證與錯誤處理

資料驗證和錯誤處理關係到 API 的穩定與可靠。本章探討如何在 Django Ninja 中有效進行資料驗證和錯誤捕捉,並給出合理、正確的回應。


第六章:API 進階功能

雖說是入門,但我們仍有必要介紹 API 的常見進階功能。這些技術將協助你應對大型專案中的典型挑戰。

我們會引導你完成每個功能的實作,同時聚焦展示它們的概念與應用場景。你可以根據這些內容,進一步自行深入學習與應用。

第七章:身分認證與單元測試

本章將介紹後端專案中不可或缺的主題,雖然核心部分不是由 Django Ninja 實作,但對於後端開發者來說,是必須掌握的技能。

第八章:系列回顧與完賽心得

簡單回顧整個系列,並分享我在本次鐵人賽的創作心得與感想。


結語

通過這篇導覽,你已經對整個系列的架構有了清晰的認識。接下來的每一篇文章都會按照這個藍圖,循序漸進地帶領你學習 Django Ninja。

下一篇,我們將正式介紹 Django Ninja,並與老牌的 Django REST framework 進行比較,了解兩者在 API 開發的主要功能差異與適用場景。