fastapi的状态码介绍
【摘要】 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. 补充小知识点
- 如果不写
status_code=201,FastAPI 默认返回 200,功能能跑,但不符合 REST 规范; - 返回 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)