FastAPI 學習之路(二十)介面文件配置相關

北漂的雷子發表於2021-10-18

 系列文章:

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

  FastAPI 學習之路(二)

  FastAPI 學習之路(三)

  FastAPI 學習之路(四)

  FastAPI 學習之路(五)

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

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

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

  FastAPI 學習之路(九)請求體有多個引數如何處理?

  FastAPI 學習之路(十)請求體的欄位

      FastAPI 學習之路(十一)請求體 - 巢狀模型 

    FastAPI 學習之路(十二)介面幾個額外資訊和額外資料型別

      FastAPI 學習之路(十三)Cookie 引數,Header引數

    FastAPI 學習之路(十四)響應模型

  FastAPI 學習之路(十五)響應狀態碼

    FastAPI 學習之路(十六)Form表單

     FastAPI 學習之路(十七)上傳檔案

     FastAPI 學習之路(十八)表單與檔案

  FastAPI 學習之路(十九)處理錯誤

我們都知道,fastApi給我們提供了介面文件,在我們的實際開發中,我們會有很多的介面,有些介面需要分組,比如我們對於登入註冊相關的模組,可以統一放在登入,那麼我們如何實現劃分呢。

from fastapi import FastAPI
app = FastAPI()
@app.post("/login/", tags=["login"])
def login(username: str,password:str):
    if username == "leizi" and password=="123":
        return "success"
    return {"name": username}
@app.post("/regin/", tags=["login"])
def regin(username: str,password:str):
    return {"name": username}

我們看下,介面文件

 

 

 可以看到,我們實現的登入的模組是成功的。

        我們來看下,如何對介面增加一個簡單的描述

from fastapi import FastAPI
app = FastAPI()
@app.post("/login/", tags=["login"],description="這是登入模組")
def login(username: str,password:str):
    if username == "leizi" and password=="123":
        return "success"
    return {"name": username}
@app.post("/regin/", tags=["login"])
def regin(username: str,password:str):
    return {"name": username}

我們看下介面

 

 

  如果我們想要把所有的註釋以給讀取出來,然後展示在描述中,fastapi也給我們做了很好的封裝,我們可以簡單的看下程式碼

from fastapi import FastAPI
app = FastAPI()
@app.post("/login/", tags=["login"],summary="這是登入模組")
def login(username: str,password:str):
    """
    登入
    - param username:  使用者名稱
    - param password:  密碼
    - return: 返回是否成功
    """
    if username == "leizi" and password=="123":
        return "success"
    return {"name": username}
@app.post("/regin/", tags=["login"])
def regin(username: str,password:str):
    return {"name": username}

我們看下最後的實現的效果

 

 

  如果我們要標註介面啟用怎麼實現呢

from fastapi import FastAPI
app = FastAPI()
@app.post("/login/", tags=["login"],summary="這是登入模組")
def login(username: str,password:str):
    """
    登入
    - param username:  使用者名稱
    - param password:  密碼
    - return: 返回是否成功
    """
    if username == "leizi" and password=="123":
        return "success"
    return {"name": username}
@app.post("/regin/", tags=["login"],deprecated=True)
def regin(username: str,password:str):
    return {"name": username}

我們可以介面文件的展示

 

 

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

相關文章