app = FastAPI()

@app.get(“/”)

def read_root():

return {“message”: “你好啊,朋友”}

溫馨提示:

FastAPI強(qiáng)制要求Python 3.6以上版本,因?yàn)樾枰玫筋?lèi)型提示這個(gè)特性。裝之前記得看看自己Python版本夠不夠格。

2.?自動(dòng)生成API文檔

這個(gè)功能太爽了!寫(xiě)完代碼后,直接訪問(wèn)?/docs?路徑就能看到超漂亮的API文檔,都不用自己寫(xiě)。代碼里加點(diǎn)注釋?zhuān)臋n就自動(dòng)生成了。

@app.get(“/items/{item_id}”)

def read_item(item_id: int, q: str = None):

“”“

獲取商品信息

- item_id: 商品ID

- q: 可選的查詢(xún)參數(shù)

”“”

return {“item_id”: item_id, “q”: q}

3.?請(qǐng)求驗(yàn)證有多簡(jiǎn)單

以前驗(yàn)證請(qǐng)求數(shù)據(jù)可費(fèi)勁了,現(xiàn)在用?Pydantic?模型,輕輕松松就搞定:

from pydantic import BaseModel

class Item(BaseModel):

name: str

price: float

is_sale: bool = False

@app.post(“/items/”)

def create_item(item: Item):

return item

要是數(shù)據(jù)格式不對(duì),F(xiàn)astAPI自動(dòng)返回錯(cuò)誤信息,都不用自己寫(xiě)驗(yàn)證邏輯了,美滋滋。

4.?異步處理超給力

FastAPI原生支持異步編程,處理并發(fā)請(qǐng)求特別在行:

@app.get(“/async_items/{item_id}”)

async def read_item_async(item_id: int):

# 假裝在查數(shù)據(jù)庫(kù)

await some_async_operation()

return {“item_id”: item_id}

溫馨提示:

用異步函數(shù)時(shí)記得加asyncawait關(guān)鍵字,不然代碼雖能跑,但壓根不是異步的。

5.?依賴(lài)注入很靈活

想在多個(gè)接口間共享代碼?依賴(lài)注入幫你搞定:

def get_current_user(token: str):

if not token:

raise HTTPException(status_code=401)

return {“user”: “當(dāng)前用戶(hù)”}

@app.get(“/users/me”)

def read_user(user: dict = Depends(get_current_user)):

return user

寫(xiě)項(xiàng)目一段時(shí)間就發(fā)現(xiàn)了,F(xiàn)astAPI是真的香。代碼寫(xiě)起來(lái)快,運(yùn)行起來(lái)也快,還自帶各種方便的特性。新手友好,大佬也不嫌棄。

有人可能擔(dān)心性能問(wèn)題。放心,F(xiàn)astAPI底層用的是?Starlette?和?Uvicorn?,性能相當(dāng)棒。測(cè)試顯示比很多其他Python框架都快好幾倍。

實(shí)在想不出還有啥理由不試試FastAPI。拿來(lái)寫(xiě)API簡(jiǎn)直完美,特別是搞些小項(xiàng)目,分分鐘就能搭起來(lái)。代碼寫(xiě)得少,bug也少,開(kāi)發(fā)效率杠杠的。

本文章轉(zhuǎn)載微信公眾號(hào)@iAmin啾

上一篇:

LangChain | 一種語(yǔ)言模型驅(qū)動(dòng)應(yīng)用的開(kāi)發(fā)框架

下一篇:

LLM漫談(三)| 使用Chainlit和LangChain構(gòu)建文檔問(wèn)答的LLM應(yīng)用程序
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊(cè)

多API并行試用

數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率

查看全部API→
??

熱門(mén)場(chǎng)景實(shí)測(cè),選對(duì)API

#AI文本生成大模型API

對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對(duì)比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)