W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
與指定響應(yīng)模型的方式相同,你也可以在以下任意的路徑操作中使用 status_code 參數(shù)來(lái)聲明用于響應(yīng)的 HTTP 狀態(tài)碼:
from fastapi import FastAPI
app = FastAPI()
@app.post("/items/", status_code=201)
async def create_item(name: str):
return {"name": name}
Note
注意,status_code 是「裝飾器」方法(get,post 等)的一個(gè)參數(shù)。不像之前的所有參數(shù)和請(qǐng)求體,它不屬于路徑操作函數(shù)。
status_code 參數(shù)接收一個(gè)表示 HTTP 狀態(tài)碼的數(shù)字。
Info
status_code 也能夠接收一個(gè) IntEnum 類(lèi)型,比如 Python 的 http.HTTPStatus。
它將會(huì):
Note
一些響應(yīng)狀態(tài)碼(請(qǐng)參閱下一部分)表示響應(yīng)沒(méi)有響應(yīng)體。
FastAPI 知道這一點(diǎn),并將生成表明沒(méi)有響應(yīng)體的 OpenAPI 文檔。
Note
如果你已經(jīng)了解什么是 HTTP 狀態(tài)碼,請(qǐng)?zhí)较乱徊糠帧?/p>
在 HTTP 協(xié)議中,你將發(fā)送 3 位數(shù)的數(shù)字狀態(tài)碼作為響應(yīng)的一部分。
這些狀態(tài)碼有一個(gè)識(shí)別它們的關(guān)聯(lián)名稱,但是重要的還是數(shù)字。
簡(jiǎn)而言之:
Tip
要了解有關(guān)每個(gè)狀態(tài)代碼以及適用場(chǎng)景的更多信息,請(qǐng)查看 MDN 關(guān)于 HTTP 狀態(tài)碼的文檔。
讓我們?cè)俅慰纯粗暗睦樱?/p>
from fastapi import FastAPI
app = FastAPI()
@app.post("/items/", status_code=201)
async def create_item(name: str):
return {"name": name}
201 是表示「已創(chuàng)建」的狀態(tài)碼。
但是你不必去記住每個(gè)代碼的含義。
你可以使用來(lái)自 fastapi.status 的便捷變量。
from fastapi import FastAPI, status
app = FastAPI()
@app.post("/items/", status_code=status.HTTP_201_CREATED)
async def create_item(name: str):
return {"name": name}
它們只是一種便捷方式,它們具有同樣的數(shù)字代碼,但是這樣使用你就可以使用編輯器的自動(dòng)補(bǔ)全功能來(lái)查找它們:
技術(shù)細(xì)節(jié)
你也可以使用 from starlette import status。
為了給你(即開(kāi)發(fā)者)提供方便,F(xiàn)astAPI 提供了與 starlette.status 完全相同的 fastapi.status。但它直接來(lái)自于 Starlette。
稍后,在高級(jí)用戶指南中你將了解如何返回與在此聲明的默認(rèn)狀態(tài)碼不同的狀態(tài)碼。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: