Fork me on GitHub

FastAPI响应系列(二) 响应状态码

一、默认响应状态码

 响应状态码用于服务器返回给客户端响应的状态,常用的有:

  • 200及以上   成功的响应
  • 300及以上   重定向
  • 400及以上   客户端错误
  • 500及以上   服务端错误

FastAPI的路径操作中可以使用status_code参数来声明HTTP状态码。FastAPI中可以通过状态码数字、状态码变量方式来使用。

1、状态码数字

from fastapi import FastAPI

app = FastAPI()


@app.post("/status_code/", status_code=200)
async def status_code():
    return {"status_code": 200}

2、状态码变量

如果不记得具体的数字,此时可以使用提供的变量形式。

from fastapi import FastAPI, status

app = FastAPI()


@app.post("/status_attribute/", status_code=status.HTTP_200_OK)
async def status_code():
    return {"status_code": status.HTTP_200_OK}

这与上面的数字效果是一样的。两种方式都可以,其表现形式如下:

二、自定义响应状态码 

  在某些情况下可能需要返回与默认状态码不同的状态码。比如,你希望返回默认的HTTP状态码200,但是如果数据不存在,你需要创建它并且返回创建的HTTP状态码201,此时你可以使用参数Response。

from fastapi import FastAPI, Response, status

app = FastAPI()

tasks = {"k1": "v1"}


@app.put("/get_or_create_task/{task_id}", status_code=200)
def get_or_create_task(task_id: str, response: Response):
    if task_id not in tasks:
        tasks[task_id] = "this task not in tasks before"
        response.status_code = status.HTTP_201_CREATED
    return tasks

此时访问该api:

 

posted @ 2021-06-13 17:17  iveBoy  阅读(878)  评论(0编辑  收藏  举报
TOP