赞
踩
与指定响应模型的方式相同,你也可以在以下任意的_路径操作_中使用 status_code 参数来声明用于响应的 HTTP 状态码:
from fastapi import FastAPI
app = FastAPI()
@app.post("/users/", status_code=201)
async def create_user(name: str):
return {"name": name}
注意,status_code 是「装饰器」方法(get,post 等)的一个参数。不像之前的所有参数和请求体,它不属于_路径操作函数_。status_code 参数接收一个表示 HTTP 状态码的数字。status_code 也能够接收一个 IntEnum 类型,比如 Python 的http.HTTPStatus。它将会:在响应中返回该状态码。
在 HTTP 协议中,你将发送 3 位数的数字状态码作为响应的一部分。这些状态码有一个识别它们的关联名称,但是重要的还是数字。简而言之:
让我们再次看看之前的例子:
@app.post("/users/", status_code=201)
201 是表示「已创建」的状态码。不必去记住每个代码的含义。可以使用来自 fastapi.status 的便捷变量。
from fastapi import FastAPI, status
app = FastAPI()
@app.post("/users/", status_code=status.HTTP_201_CREATED)
async def create_user(name: str):
return {"name": name}
它们只是一种便捷方式,它们具有同样的数字代码,但是这样使用你就可以使用编辑器的自动补全功能来查找它们,你也可以使用 from starlette import status。为了给你(即开发者)提供方便,FastAPI 提供了与 starlette.status 完全相同的 fastapi.status。但它直接来自于 Starlette。
响应状态码可以是数字类型,如:201,400,也可以是status.HTTP_201_CREATED
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。