FastAPI 中如何设置响应状态码?

推荐答案

在 FastAPI 中,可以通过在路由处理函数中返回 Response 对象或使用 status_code 参数来设置响应状态码。以下是两种常见的方式:

方式一:使用 status_code 参数

在这个例子中,status_code=status.HTTP_201_CREATED 会将响应的状态码设置为 201,表示资源已成功创建。

方式二:返回 Response 对象

在这个例子中,我们直接返回了一个 Response 对象,并通过 status_code 参数设置了状态码为 201

本题详细解读

1. 使用 status_code 参数

status_code 参数是 FastAPI 路由装饰器中的一个可选参数,用于指定该路由处理函数返回的 HTTP 状态码。FastAPI 提供了 fastapi.status 模块,其中包含了常见的 HTTP 状态码常量,如 HTTP_200_OKHTTP_201_CREATED 等。

这种方式适用于大多数简单的场景,尤其是当你只需要返回一个 JSON 响应时。

2. 返回 Response 对象

Response 类是 FastAPI 中用于构建 HTTP 响应的核心类。通过返回 Response 对象,你可以完全控制响应的状态码、内容、头信息等。

这种方式适用于需要更复杂响应的场景,比如需要自定义响应头、设置不同的内容类型等。

3. 状态码的选择

在设置状态码时,应根据 HTTP 协议的标准选择合适的代码。例如:

  • 200 OK:请求成功。
  • 201 Created:资源已成功创建。
  • 400 Bad Request:客户端请求错误。
  • 404 Not Found:请求的资源不存在。
  • 500 Internal Server Error:服务器内部错误。

通过合理使用状态码,可以使 API 的行为更加符合 RESTful 设计原则,并提高 API 的可读性和可维护性。

纠错
反馈