zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    求n(n>=2)以内的质数/判断一个数是否质数——方法+细节优化
    poj1185炮兵阵地 正确代码及错误代码分析
    运算符优先级的几点注意
    mod(%)之规律(除数与被除数的正负分析)
    css背景
    Content-Type
    vue数组的增改和v-model的绑定使用Demo
    python open函数关于w+ r+ 读写操作的理解(转)
    http状态码解释
    cookie与token对比(转)
  • 原文地址:https://www.cnblogs.com/poloyy/p/15318139.html
Copyright © 2011-2022 走看看