FastAPI 學習之路(八)路徑參數和數值的校驗


系列文章:

  FastAPI 學習之路(一)fastapi--高性能web開發框架

  FastAPI 學習之路(二)

  FastAPI 學習之路(三)

  FastAPI 學習之路(四)

  FastAPI 學習之路(五)

      FastAPI 學習之路(六)查詢參數,字符串的校驗

  FastAPI 學習之路(七)字符串的校驗

 與使用 Query 為查詢參數聲明更多的校驗和元數據的方式相同,你也可以使用 Path 為路徑參數聲明相同類型的校驗和元數據。我們看下如何來實現

from fastapi import FastAPI, Path, Query
app = FastAPI()
@app.get("/items/{id}")
def read_items(
    id: int = Path(..., title="id"),
    q: Optional[str] = Query(None, alias="item-query"),
):
    results = {"item_id": id}
    if q:
        results.update({"q": q})
    return results

我們看下在接口文檔的請求。

 

 

可以正常請求,我們可以看到,我們q參數在請求的時候是使用item-query    請求的。正常我們接受是用q接受即可。

        對於必需參數,我們沒有順序要求,但是有默認值的參數必須放在沒有默認值的后面,不然python會報錯。我們可以代碼去演示下如下圖:

 

 

如果我們想對參數排序怎么做呢,很簡單。

from fastapi import FastAPI, Path, Query
app = FastAPI()
@app.get("/items")
def read_items(*,
    id: int,q:str
):
    results = {"item_id": id}
    if q:
        results.update({"q": q})
    return results

我們會有這樣的需求,讓id大於多少才給返回,如何實現呢

from fastapi import FastAPI,Query
app = FastAPI()
@app.get("/items")
def read_items(*,id: int=Query(...,ge=5,),q:str):
    results = {"item_id": id}
    if q:
        results.update({"q": q})
    return results

我們來請求下看下結果

 

         那么當我們大於5的時候請求。

 

 

這樣就滿足了我們的需求啊。還有大於和小於等於

而且你還可以聲明數值校驗:

gt:大於(greater than)

ge:大於等於(greater than or equal)

lt:小於(less than)

le:小於等於(less than or equal)

文章首發在公眾號,歡迎關注。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM