fast服务器响应,FastApi教程|响应状态码

这篇博客介绍了如何在FastAPI中使用`status_code`参数为API操作指定HTTP状态码,如201用于创建资源的响应。通过`fastapi.status`或`starlette.status`模块,可以方便地引用HTTP状态码,使代码更具可读性。同时,FastAPI会根据状态码自动生成相应的OpenAPI文档。
摘要由CSDN通过智能技术生成

您可以使用指定响应模型的相同方法,也可以

status_code

在任何

路径操作中

使用参数声明用于响应的HTTP状态代码

@app.get()

@app.post()

@app.put()

@app.delete()

等等

from fastapi import FastAPI

app = FastAPI()

@app.post("/items/", status_code=201)

async def create_item(name: str):

return {"name": name}

注意

注意,

status_code

是“装饰”方法的参数(

get

post

等)。

不像所有参数和主体一样,

具有

路径操作功能

status_code

参数接收带有HTTP状态代码的数字。

它会:

在响应中返回该状态码。

在OpenAPI模式中(以及在用户界面中)将其记录为:

f04fe9f959a4625103e8a3926b84a4bf.png

注意

一些响应代码(请参阅下一节)表明响应没有主体。

FastAPI知道这一点,并将生成表明没有响应正文的OpenAPI文档。

关于HTTP状态码

注意

如果您已经知道什么是HTTP状态代码,请跳到下一部分。

在HTTP中,您将发送3位数的数字状态代码作为响应的一部分。

这些状态代码具有关联的名称以识别它们,但重要的是数字。

简而言之:

100

以上为“信息”。

您很少直接使用它们。

具有这些状态代码的响应不能带有主体。

200

和以上是针对“成功”响应的。

这些是您最常使用的。

200

是默认状态代码,表示一切都正常。

另一个示例是

201

“已创建”。

通常在数据库中创建新记录后使用。

特殊情况是

204

“无内容”。

当没有内容返回给客户端时使用此响应,因此该响应必须没有正文。

300

以上是“重定向”的。

具有这些状态代码的响应可能带有或可能没有正文,但

304

“ Not Modified”

除外

该正文

不得包含一个。

400

及以上是针对“客户端错误”响应的。

这些是您可能最常使用的第二种类型。

例如

404

,对于“未找到”响应。

对于来自客户端的一般错误,您可以使用

400

500

以上是针对服务器错误的信息。

您几乎永远不会直接使用它们。

当您的应用程序代码或服务器中的某些部分出现问题时,它将自动返回这些状态代码之一。

小费

要了解有关每个状态代码以及适用于什么的代码的更多信息,请查看

有关HTTP状态代码

MDN

文档

记住名字的捷径

让我们再次看前面的例子:

from fastapi import FastAPI

app = FastAPI()

@app.post("/items/", status_code=201)

async def create_item(name: str):

return {"name": name}

201

是“已创建”的状态代码。

但是您不必记住每个代码的含义。

您可以使用中的便捷变量

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}

它们只是一种方便,它们拥有相同的编号,但是那样一来,您可以使用编辑器的自动完成功能来查找它们:

a7d87370435733e3bc2dc99a773c7743.png

技术细节

您也可以使用

from starlette import status

FastAPI

提供相同

starlette.status

fastapi.status

,就像为你的方便,开发人员。

但它直接来自Starlette。

更改默认

稍后,在“

高级用户指南”中

,您将看到如何返回与在此声明的默认状态码不同的状态码。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值