成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

FastAPI 路由詳解:路徑參數、查詢參數、請求體,一篇掌握!

網絡 路由交換
這篇文章將帶你全面掌握 FastAPI 中最常用的三種參數類型,配合 Pydantic 驗證,輕松構建高質量 API!

你是否曾在編寫接口時對參數處理感到迷糊?

  • 路徑參數怎么寫?
  • 查詢參數和請求體參數有啥區別?
  • 怎么自動類型校驗、生成文檔?

這篇文章將帶你全面掌握 FastAPI 中最常用的三種參數類型,配合 Pydantic 驗證,輕松構建高質量 API!

路徑參數(Path Parameters)

路徑參數出現在 URL 中,例如 /users/{user_id}。

from fastapi import FastAPI

app = FastAPI()

@app.get("/users/{user_id}")
def get_user(user_id: int):
    return {"user_id": user_id}

訪問 /users/123,FastAPI 會自動將 123 轉為 int 傳入 user_id。

特點:

  • 參數寫在 URL 路徑中
  • 自動類型轉換
  • 常用于資源定位(如用戶 ID)

查詢參數(Query Parameters)

查詢參數通過 URL ? 后的鍵值對傳遞,例如 /search?q=fastapi&limit=10。

@app.get("/search")
def search(q: str, limit: int = 10):
    return {"query": q, "limit": limit}

訪問 /search?q=fastapi&limit=5 返回:

{"query": "fastapi", "limit": 5}

特點:

  • 傳參方式靈活,可設置默認值
  • 自動類型校驗、自動文檔支持
  • 常用于分頁、篩選、搜索

請求體參數(Request Body)

當你需要傳遞 JSON 對象等復雜結構,就要用請求體參數,并結合 Pydantic 定義模型。

步驟一:定義數據模型

from pydantic import BaseModel

class Item(BaseModel):
    name: str
    price: float
    tags: list[str] = []

步驟二:接收請求體

@app.post("/items/")
def create_item(item: Item):
    return item

發送請求:

POST /items/
{
  "name": "iPhone 15",
  "price": 999.9,
  "tags": ["phone", "apple"]
}

FastAPI 會:

  • 自動將 JSON 轉換為對象
  • 自動校驗字段
  • 自動生成 API 文檔

混合使用(路徑 + 查詢 + 請求體)

三種參數可以組合使用:

from typing import Union

@app.put("/items/{item_id}")
def update_item(
    item_id: int,
    q: Union[str, None] = None,
    item: Item = None
):
    return {
        "item_id": item_id,
        "q": q,
        "item": item
    }

參數驗證與文檔增強

FastAPI 支持通過 Query 和 Path 設置限制和文檔描述:

from fastapi import Query, Path

@app.get("/products/{product_id}")
def get_product(
    product_id: int = Path(..., title="產品 ID", ge=1),
    keyword: str = Query(None, max_length=20, description="搜索關鍵詞")
):
    return {"product_id": product_id, "keyword": keyword}

支持的驗證包括:

  • 是否必填(...)
  • 數值范圍(ge=1)
  • 字符長度(max_length)
  • 自動展示在 Swagger 文檔中

總結

類型

來源

適用場景

特點

路徑參數

/users/{id}

標識資源

自動轉換類型、資源定位

查詢參數

?q=xxx&limit=1

篩選分頁搜索

可選默認值、自動文檔

請求體參數

JSON 請求體

提交復雜結構數據

使用 Pydantic 模型驗證解析

FastAPI 的參數處理不僅強大,還智能、自動、文檔友好,大大提升開發體驗和效率!

責任編輯:趙寧寧 來源: Ssoul肥魚
相關推薦

2025-05-19 09:30:42

FastAPI接口代碼

2022-03-02 11:37:57

參數性能調優

2025-05-16 09:16:43

2024-04-12 09:01:08

2017-08-22 16:20:01

深度學習TensorFlow

2021-10-29 07:35:32

Linux 命令系統

2021-04-14 14:16:58

HttpHttp協議網絡協議

2022-04-29 14:38:49

class文件結構分析

2021-10-30 07:55:00

BLE 藍牙開發

2023-10-07 09:04:31

FastAPI單元測試

2018-12-19 09:38:20

2025-04-08 08:15:00

FastAPI響應模型數據庫

2024-04-15 08:17:21

Spring依賴注入循環依賴

2022-03-03 09:05:17

索引MySQL數據查詢

2023-03-09 07:47:56

BeanFactorSpring框架

2021-08-06 17:47:46

Kotin高階函數函數

2021-03-28 09:12:58

多線程死鎖技術熱點

2020-12-15 08:15:34

SVG元素路徑

2021-09-30 11:55:00

微服務

2010-06-01 17:14:03

Rsync 參數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人性生交a做片 | 成人区精品 | 中文字幕视频在线 | 中文字幕av在线 | 国产亚洲精品久久久久动 | 欧美性影院| 日韩精品一区二区三区中文字幕 | 99国产在线| 亚洲啪啪| 国偷自产av一区二区三区 | 日韩中文字幕一区二区 | 日韩中文在线 | 99精品国产一区二区三区 | 在线视频中文字幕 | 国产69久久精品成人看动漫 | 久久久久亚洲精品国产 | 亚洲精品在线视频 | 欧美日韩精品一区二区天天拍 | 春色av| 欧美aaaa视频| 国产永久免费 | 久久久91精品国产一区二区三区 | 亚洲国产精品久久久 | 国产精品1区 | 午夜欧美日韩 | 福利网址 | 久久国产欧美日韩精品 | 九九亚洲| 大乳boobs巨大吃奶挤奶 | 国产精品色| 日韩精品av一区二区三区 | 一级a性色生活片久久毛片 午夜精品在线观看 | 美女视频. | 国产视频导航 | 久久国产精品色av免费观看 | 99精品免费 | 蜜臀久久99精品久久久久久宅男 | 91国产在线视频在线 | 精品国产鲁一鲁一区二区张丽 | 日韩中文视频 | 九九久久国产 |