一、默认响应状态码
响应状态码用于服务器返回给客户端响应的状态,常用的有:
- 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: