在現代軟體開發中,工具不僅能提高開發效率,還能改善程式碼品質,讓專案的管理與維護變得更加輕鬆。 本文將介紹幾個重要的 Python 開發工具,討論它們在專案中的...
選擇任何工具之前,我們通常會先了解它能解決的問題,以及是否符合與自己的需求。 本文將介紹 Django Ninja 這個現代化的 API 框架,探討它的起源和主...
在這個 30 天的系列文章中,我們將詳細探討 Django Ninja 的基礎實作,透過文字教學與範例專案的程式碼,帶你一步一步熟悉這個強大而靈活的 Djang...
上一篇中,我們講述了系列的整體方向。現在,我將進一步深入,為你詳細介紹系列的架構與各個章節安排。 可以說,本文就是整個系列的藍圖。 一般而言,架構介紹通常會直接...
上一篇文章中,我們介紹了 Django Ninja 如何處理 HTTP 請求,並強調了它與 Python type hints 之間的緊密結合。 本篇將探討 D...
第三章是全系列的重頭戲,因為我們要介紹 Django Ninja 的核心部分——API。 我把本章分成了三個小節: 第一節:路由。 第二節:請求。 第三節:回...
上一篇我們討論了,請求 URL 中關於路徑參數的處理方式。 本文將介紹查詢參數(query parameters),這是 RESTful API 中用來傳遞過濾...
在第一章中,我們對 Django Ninja 做了全方位的介紹,並且分析了它與 Django REST Framework 的主要區別。 相信你對 Django...
上一篇文章中,我們介紹了 Django 傳統的路由設定方式。 如前所述,雖然有一個「路由清單」確實不錯。但隨著專案規模的擴大,不斷來回切換urls.py和vie...
Django API 回應,常常是對 Model 物件(即 db 資料)內容進行一定的篩選與加工。 比如「取得單一文章資訊」API,實際上就是從Post物件挑選...
前一篇我們了解了整個專案所使用的 Python 開發工具。 本文將帶領你一步步完成,有關範例專案的環境設定:從安裝 Python、Poetry、clone 專案...
歡迎來到第三章第二節! 作為 API 的核心邏輯實現,view 函式無疑是 Django Ninja API 的靈魂所在。 Django Ninja 和 Fas...
這一篇要正式進入「HTTP 回應」環節,也就是第三小節。 本節將透過 4 篇文章,介紹 Django Ninja 如何處理 HTTP 回應: 卷 13:回應(...
經過前幾篇的介紹,我們已經學習了如何處理路徑與查詢參數。但在現實世界中,我們往往還需要處理更複雜的請求資料。 比如用戶提交的表單、上傳的檔案等等。對於 API...
資料驗證是 API 開發中的關鍵需求之一,它負責確保從客戶端提交的資料是符合預期的,從而避免潛在的錯誤和安全問題。 有效的資料驗證可以在 API 接收到錯誤資料...
上一篇文章中,我們探討了 Django Ninja 影響 API 文件呈現的一些重要設定。它們是自動化 API 文件的基本功,不容忽視。 但這樣還不夠!我們想要...
在軟體開發中,錯誤處理是一個不容忽視——但常常被忽視——的環節。 不誇張地說,錯誤處理是一個「做得好沒人誇,做不好系統就慘兮兮」的議題。 沒關係,我們還是盡可能...
「依程式碼自動產生 API 文件」是 Django Ninja 的一大賣點。 事實上,API 文件的自動化,正是我在工作上的專案從 Django REST fr...
「請問你們的專案有單元測試嗎?」 面試中如果你提出這個問題,可能會讓面試官面有難色。 測試的重要性,大部分開發者都心知肚明。只是願意認真對待的人未必很多。 但如...
在 API 開發中,我們經常會遇到關聯模型之間的資料需要同時返回的情況。 特別是在處理「一對一」或「一對多」關聯時,多層結構往往是常態。 我們希望以巢狀結構(N...
分頁(pagination)功能,就算在資料量較少的小型專案,也具有相當的重要性。 沒分頁,API 照樣能運作——只是效能會受到影響,特別是在資料量大的情況下。...
歡迎來到第七章!本章總共有兩篇內容: 卷 28:身分認證——Session 認證與全域設定 卷 29:單元測試——使用 Test Client 與 pytes...
系列最終章,我們的「Django Ninja 探險」將暫時告一段落。 這當然不是結束,畢竟 Django Ninja 還只是一個相對新的專案——我對它的未來充滿...
現代 Web 服務中,檔案上傳是一個常見的情境。 無論是使用者上傳照片、夾帶附件,檔案上傳都是不可或缺的功能。 本文介紹如何在 Django Ninja 中實現...
上一篇我們講完了單一欄位的自定義驗證,這篇則要來討論跨欄位之間的驗證。 跨欄位驗證同樣是 API 開發中十分常見的需求,例如註冊帳號時,要保證「密碼」與「確認密...
上篇中,我們學習了 Django ORM 的Q物件和 Django Ninja 的 FilterSchema,但後者感覺只學了一半。 討論比較多的是,view...
「查詢」是 API 中常見的附加需求,本質上是對資料的過濾(filtering)與篩選。 無論是篩選文章、商品,還是查詢用戶,根據不同條件來過濾資料並獲得結果,...
上一篇我們介紹了 Django Ninja 的內建分頁器,並用它實作了簡單的分頁功能。 雖然內建的PageNumberPagination確實方便,但在很多時候...
上一篇提到,API 回應常常是對 Django Model 物件內容的篩選與加工——然後 JSON 序列化。 其中「加工」部分,用更專業的說法,大概是「資料格式...
上一篇文章,我們學習了如何操作HttpError,並建議你只在 view 函式中使用它。 但光是這樣,專案 API 的錯誤處理,還遠遠不夠完善,至少有 3 個常...