You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flask-Smorest中移除OpenAPI页面的‘Default error response’(默认错误响应)

如何在Flask-Smorest中移除OpenAPI页面的‘Default error response’(默认错误响应)

嘿,我来帮你搞定这个问题!Flask-Smorest默认会给每个API端点自动加上一些通用的错误响应(比如400、401这类)到OpenAPI文档里,刚好你这个get方法不会返回错误,所以咱们可以通过两种方式移除这些默认项:

方式一:针对单个端点移除

直接在你的@blp.response装饰器里加上**exclude_defaults=True**参数就行,这样这个特定的get接口就不会再显示默认错误响应了。另外注意下你代码里写的ITEMS_SCHEMA可能是导入的ItemsSchema的笔误,记得保持名称一致哦。修改后的代码如下:

from flask.views import MethodView
from flask_smorest import Blueprint
from schemas.items import ItemsSchema

blp = Blueprint("api", "items", url_prefix="/items", description="Operations on items")

@blp.route('')
class ItemsView(MethodView):
    # 添加exclude_defaults=True参数移除默认错误响应
    @blp.response(status_code=200, schema=ItemsSchema, exclude_defaults=True)
    def get(self):
        # 这里写你的业务逻辑,比如返回物品列表
        return {"items": []}

方式二:针对整个蓝图移除默认错误响应

如果这个蓝图下的所有接口都不需要默认错误响应,那可以在创建Blueprint的时候直接设置**default_error_response=False**,这样整个蓝图里的所有端点都会去掉默认错误响应:

blp = Blueprint(
    "api", 
    "items", 
    url_prefix="/items", 
    description="Operations on items",
    default_error_response=False  # 加入这个全局配置
)

另外提一句,如果之后你需要给某个端点手动添加特定的错误响应,还是可以用@blp.response单独定义的,比如@blp.response(404, description="未找到对应物品")这样就可以啦。

备注:内容来源于stack exchange,提问作者akpp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 16:00:30