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

Flask使用flask_openapi3无法生成Swagger路由及文档求助

Flask OpenAPI3 蓝图路由文档不显示的解决方案

核心问题在于你使用了Flask原生的Blueprint,而flask_openapi3需要用它自带的APIBlueprint类来解析路由中的OpenAPI注释——原生Blueprint不会处理这些注释,导致生成的openapi.json中paths字段为空,Swagger页面自然看不到路由文档。

具体修复步骤:

  1. 替换蓝图导入类
    在所有路由文件(如app/hello/routes.py、app/main/routes.py)中,将Flask原生Blueprint替换为flask_openapi3提供的APIBlueprint:

    修改app/hello/routes.py示例:

    # 替换原有的 from flask import Blueprint
    from flask_openapi3 import APIBlueprint
    
    hello_bp = APIBlueprint('hello', __name__)
    
    @hello_bp.get('/hello')
    def hello():
        """
        Hello Route
        ---
        description: Returns a hello message.
        responses:
          200:
            description: Successful response
            content:
              text/plain:
                schema:
                  type: string
                  example: Hello
        """
        return 'Hello'
    

    (补充content字段能让Swagger页面显示更完整的响应示例,非强制但推荐添加)

  2. 批量修改所有路由文件
    对app/main/routes.py执行同样的替换操作,确保所有蓝图都使用APIBlueprint类,并保持路由的docstring格式符合OpenAPI 3.x规范。

  3. 重启Flask服务
    停止当前运行的服务,重新执行python run.py,再访问http://127.0.0.1:5000/openapi/swagger即可看到路由的API文档。

额外检查项:

  • 执行pip install --upgrade flask-openapi3确保使用最新版本的库,避免版本兼容问题。
  • 验证路由的docstring格式,比如responses中的状态码、字段是否符合OpenAPI 3.x要求。

内容的提问来源于stack exchange,提问作者TrueCactus

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 16:31:00