当前位置:   article > 正文

12.FastAPI响应状态码_python fastapi 定义 返回结果 code

python fastapi 定义 返回结果 code

12.FastAPI响应状态码

在FastAPI中,允许自行定义返回的响应状态码,可以通过在路由操作中声明 status_code 的参数值来返回状态码。 status_code 是装饰器方法参数,不属于路由操作参数, status_code 接受一个表示HTTP状态码的数值,也可以接受一个 IntEnum 类型 ,可以使用python的 http.HTTPStatus,具体可打开链接:http — HTTP modules — Python 3.10.2 documentation

12.1HTTP状态码

在 HTTP 协议中,可以发送 3 位数的数字状态码作为响应的一部分,这些状态码有一个识别它们的关联名称,但是重要的还是数字。

概括如下:

  • 100 及以上状态码用于「消息」响应。一般很少直接使用。具有这些状态代码的响应不能带有响应体。

  • 200 及以上状态码用于「成功」响应。最常使用的。200 是默认状态代码,它表示一切「正常」。另一个例子会是 201,「已创建」。它通常在数据库中创建了一条新记录后使用。一个特殊的例子是 204,「无内容」。此响应在没有内容返回给客户端时使用,因此该响应不能包含响应体。

  • 300 及以上状态码用于「重定向」。具有这些状态码的响应可能有或者可能没有响应体,但 304「未修改」是个例外,该响应不得含有响应体。

  • 400 及以上状态码用于「客户端错误」响应。这些也是经常使用的类型。一个例子是 404,用于「未找到」响应。对于来自客户端的一般错误,可以只使用 400。

  • 500 及以上状态码用于服务器端错误。几乎永远不会直接使用它们。当应用程序代码或服务器中的某些部分出现问题时,它将自动返回这些状态代码之一。

12.2直接使用数值

示例代码:

from fastapi import FastAPI
​
app = FastAPI()
​
@app.get(path='/hello', status_code=201)
async def hello():
    return {'hello': 'world'}

执行请求后的日志显示状态码:

127.0.0.1:50101 - "GET /hello HTTP/1.1" 201 Created

12.3使用python的 http.HTTPStatus

示例代码:

from fastapi import FastAPI
from http import HTTPStatus
​
app = FastAPI()
​
@app.get(path='/hello', status_code=HTTPStatus.CREATED)
async def hello():
    return {'hello': 'world'}

12.4使用 fastapi.status

示例代码:

from fastapi import FastAPI
from fastapi import status
​
app = FastAPI()
​
@app.get(path='/hello', status_code=status.HTTP_201_CREATED)
async def hello():
    return {'hello': 'world'}
​
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号