fastapi的状态码介绍

举报
人工智能-张晨光 发表于 2026/08/12 12:09:21 2026/08/12
【摘要】 HTTP 状态码 201 详解(结合 FastAPI 代码)python运行@router.post("/",response_model=UserResponse,status_code=201)1. 201 Created 含义201 = 创建成功规范定义:服务器成功处理请求,并且成功创建了一条新资源。2. 什么时候用?✅ POST 请求新增数据时标准推荐状态码创建用户、新增商品、新建订...

HTTP 状态码 201 详解(结合 FastAPI 代码)

python

运行


@router.post("/",response_model=UserResponse,status_code=201)

1. 201 Created 含义

201 = 创建成功

规范定义:服务器成功处理请求,并且成功创建了一条新资源

2. 什么时候用?

POST 请求新增数据时标准推荐状态码
  • 创建用户、新增商品、新建订单
  • 调用接口后,数据库多出一条新记录
对比:
  • 200 OK:通用成功(查询、修改、删除都能用)
  • 201 Created:专门用于新增创建资源,语义更标准、RESTful 规范

3. RESTful 常规状态码对照(后端常用)

表格



状态码 名称 使用场景
200 OK 查询、更新、删除成功
201 Created POST 创建资源成功
400 Bad Request 请求参数错误
401 Unauthorized 未登录 /token 失效
403 Forbidden 登录了,但没有权限
404 Not Found 资源不存在
422 Unprocessable Entity FastAPI 参数校验失败

4. 补充小知识点

  1. 如果不写 status_code=201,FastAPI 默认返回 200,功能能跑,但不符合 REST 规范;
  2. 返回 201 时,行业最佳实践:响应头 Location 带上新创建资源的地址,例如 Location: /users/123;FastAPI 可以手动设置。
示例:
python

运行


from fastapi import Response

@router.post("/", response_model=UserResponse, status_code=201)
def create_user(response: Response):
    user = create_db_user()
    response.headers["Location"] = f"/users/{user.id}"
    return user
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。