FastApi教程|响应-更改状态码

发表时间:2020-03-09

您可能在阅读之前可以设置默认的 响应状态代码

但是在某些情况下,您需要返回不同于默认状态代码的状态代码。

用例

例如,假设您想 200 默认 返回HTTP状态代码“ OK” 。

但是,如果数据不存在,则要创建它,并返回HTTP状态代码“ CREATED” 201

但是,您仍然希望能够使用过滤和转换返回的数据 response_model

对于这些情况,可以使用 Response 参数。

使用 Response 参数

您可以 Response 路径操作函数中 声明类型的参数 (就像对Cookie和标头一样)。

然后,您可以 status_code 在该 时间 响应对象中设置。

from fastapi import FastAPI, Response, status

app = FastAPI()

tasks = {"foo": "Listen to the Bar Fighters"}


@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 didn't exist before"
        response.status_code = status.HTTP_201_CREATED
    return tasks[task_id]

然后,您可以像往常一样返回所需的任何对象(a dict ,数据库模型等)。

而且,如果您声明了 response_model ,它仍将用于过滤和转换您返回的对象。

FastAPI 将使用该 时间 响应来提取状态代码(还包括cookie和标头),并将其放入包含您返回的值(由any过滤)的最终响应中 response_model

您还可以 Response 在依赖项中 声明 参数,并在依赖项中设置状态代码。 但是请记住,最后一个将获胜。

文章来源互联网,如有侵权,请联系管理员删除。邮箱:417803890@qq.com / QQ:417803890

微配音

Python Free

邮箱:417803890@qq.com
QQ:417803890

皖ICP备19001818号-4
© 2019 copyright www.pythonf.cn - All rights reserved

微信扫一扫关注公众号:

联系方式

Python Free