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

简介: 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 文档中

 

正确传参的请求结果

image.png

查看 Swagger API 文档

微信图片_20220515144540.png


默认的 200 变成了 201



相关文章
|
数据库
FastAPI(53)- Response Headers 响应设置 Headers
FastAPI(53)- Response Headers 响应设置 Headers
544 0
FastAPI(53)- Response Headers 响应设置 Headers
|
3月前
|
存储 缓存 NoSQL
【性能飙升的秘密】FastAPI应用如何借助缓存技术实现极速响应?揭秘高效Web开发的制胜法宝!
【8月更文挑战第31天】FastAPI是一个高性能Web框架,利用Starlette和Pydantic实现高效API构建。本文介绍如何通过缓存提升FastAPI应用性能,包括使用`starlette-cache[redis]`实现Redis缓存,以及缓存一致性和缓存策略的注意事项。通过具体示例展示了缓存的配置与应用,帮助开发者构建更高效的Web应用。
203 0
|
JSON NoSQL API
全面拥抱 FastApi — 响应模型
全面拥抱 FastApi — 响应模型
|
存储
FastAPI(51)- 自定义响应之 StreamingResponse、FileResponse
FastAPI(51)- 自定义响应之 StreamingResponse、FileResponse
1020 1
FastAPI(51)- 自定义响应之 StreamingResponse、FileResponse
|
JavaScript API 网络安全
FastAPI(52)- Response Cookies 响应设置 Cookies
FastAPI(52)- Response Cookies 响应设置 Cookies
399 0
FastAPI(52)- Response Cookies 响应设置 Cookies
FastAPI(50)- 自定义响应之 RedirectResponse
FastAPI(50)- 自定义响应之 RedirectResponse
367 0
FastAPI(50)- 自定义响应之 RedirectResponse
|
JSON API 数据格式
FastAPI(49)- 自定义响应之 ORJSONResponse、UJSONResponse
FastAPI(49)- 自定义响应之 ORJSONResponse、UJSONResponse
436 0
FastAPI(49)- 自定义响应之 ORJSONResponse、UJSONResponse
|
JSON API 数据格式
FastAPI(48)- 自定义响应之 HTMLResponse、PlainTextResponse (下)
FastAPI(48)- 自定义响应之 HTMLResponse、PlainTextResponse (下)
257 0
FastAPI(48)- 自定义响应之 HTMLResponse、PlainTextResponse (下)
FastAPI(48)- 自定义响应之 HTMLResponse、PlainTextResponse (上)
FastAPI(48)- 自定义响应之 HTMLResponse、PlainTextResponse (上)
391 0
FastAPI(48)- 自定义响应之 HTMLResponse、PlainTextResponse (上)
|
NoSQL 测试技术 Redis
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(下)
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(下)
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(下)