FastAPI(20)- Response Status Code 响应状态码

前言

和指定响应模型一样,可以在任何路径操作中添加参数 status_code,用于声明响应的 HTTP 状态码

  • @app.get()
  • @app.post()
  • @app.put()
  • @app.delete()

 

最简单的栗子

复制代码
#!usr/bin/env python
# -*- coding:utf-8 _*-
"""
# author: 小菠萝测试笔记
# blog:  https://www.cnblogs.com/poloyy/
# time: 2021/9/21 10:27 下午
# file: 18_status_code.py
"""
import uvicorn
from fastapi import FastAPI

app = FastAPI()


@app.post("/items/", status_code=201)
async def create_item(name: str):
    return {"name": name}


if __name__ == "__main__":
    uvicorn.run(app="18_status_code:app", host="127.0.0.1", port=8080, reload=True, debug=True)
复制代码

 

重点

  • status_code 接收一个带有 HTTP 状态代码的 number
  • status_code 也可以接收一个 IntEnum
  • 如果是 number,可以使用  from fastapi import status ,里面都是封装好的状态码变量,直接调用即可
  • 如果是 IntEnum,可以使用 from http import HTTPStatus ,是一个 int 类型的枚举类

 

status 的栗子

from fastapi import status

app = FastAPI()

@app.post("/items/", status_code=status.HTTP_201_CREATED)
async def create_item(name: str):
    return {"name": name}
  • 更推荐用这个,因为变量名会包含状态码+含义
  •  fastapi.status 是直接来自 starlette.status ,提供的东西都是一样的

 

HTTPStatus 的栗子 

from http import HTTPStatus

app = FastAPI()

@app.post("/items/", status_code=HTTPStatus.CREATED)
async def create_item(name: str):
    return {"name": name}

 

status_code 的作用

  • 在响应中返回该状态代码
  • 在 OpenAPI Schema 中记录它,也会显示在 Swagger API 文档中

 

正确传参的请求结果

 

查看 Swagger API 文档

默认的 200 变成了 201

 

posted @   小菠萝测试笔记  阅读(595)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
历史上的今天:
2020-09-25 Cypress系列(53)- as() 命令详解
点击右上角即可分享
微信分享提示