
這是 Django Ninja 系列教學的第 10 篇。
上一篇文章中,我們介紹了 Django Ninja 如何處理 HTTP 請求,並強調了它與 Python type hints 之間的緊密結合。
本篇將探討 Django Ninja 中,路徑參數(path parameters)的應用與細節,這在處理 HTTP 請求時極為常見,尤其是在 RESTful API 中。
本文對範例專案的程式碼改動,都集中在這個 PR。
快速導覽
👉 完整系列目錄:點此查看
👉 程式碼範例:GitHub 範例專案
一、什麼是 Path Parameters?
Path parameters 是構成 URL 的一部分,它們位於網址路徑(path)中的特定位置,根據不同的值(參數)來決定傳入的內容,用來動態指定資源。
我們不妨先了解一下,path 在整個 URL 中的位置:(圖片取自維基百科)

從圖中可以看出,路徑(path)是 URL 的一部分——而且是必要部分。
不過請注意,path parameters 只是 Django、Django Ninja 這類框架所提供的一種「功能」。對 URL 本身而言,path 就是 path,也就是單純的字串而已。
路徑參數例子
舉一個簡單的例子,讓我們可以更好地理解 path parameters 的概念。
@router.get(path='/posts/{post_id}/') # {post_id} 就是路徑參數
實際請求時,123 就是透過路徑參數,代表特定文章的 id:
GET /posts/123
可想而知,如果是 456 或 789,你會得到不同的結果。
這使得 API 具有彈性,可以針對不同的資源進行操作,而不必為每一個資源建立不同的路由——它們的端點與路由都是相同的,只是「參數」不同。