【问题标题】:Using Swagger with Flask [closed]将 Swagger 与 Flask 一起使用 [关闭]
【发布时间】:2014-01-26 11:17:37
【问题描述】:

有没有办法使用SwaggerFlask 中生成 RESTful API?

【问题讨论】:

  • 如果 API 已经存在,则有 thisthis 生成一个。尽管如此,这在很大程度上是一个“向我建议图书馆”的问题,这更适合Stack Overflow Chat

标签: flask swagger swagger-ui


【解决方案1】:

对于 Swagger 3.0:

使用fastapi

【讨论】:

  • 这可能不是一个正确的答案(技术上它使用 Starlette 而不是 Flask),但它是迄今为止最好的恕我直言。我尝试了所有其他选项,但对它们未能利用现代 Python 感到沮丧。相比之下,FastAPI 的序列化、类型化和路由都得到了很好的实现,并且正在积极改进。 Starlette 与 Flask 非常相似,因此几乎没有任何学习曲线。
【解决方案2】:

现在还有flask-apispec。它使用 marshmallow 来编写最终出现在 swagger 输出中的模式/注释。

【讨论】:

    【解决方案3】:

    Flasgger 是为 Flask 路由制作自动 UI 的扩展 http://github.com/rochacbruno/flasgger

    【讨论】:

      【解决方案4】:

      Swagger 编辑器现在支持 Flask:http://editor.swagger.io/#/

      【讨论】:

        【解决方案5】:

        到目前为止,基于 Flask-Restful 的 Flask-RESTPlus。 它提供了一些装饰器来记录您的 API 并生成 Swagger 规范、Postman 集合......

        下一个版本将能够根据 Swagger 规范生成 API。

        【讨论】:

        • 这是一个不错的选择,它的工作方式和restify一样,但包含swagger,它包含swagger UI。
        • 我只希望 Flask-RESTPlus 0.12 中的 @api.doc(...) 和其他 Swagger 文档装饰器被记录得更好。我花了很多时间在黑暗中拍摄以获得我想要的文档。
        • 有一个完整的文档页面仅供文档装饰器使用:flask-restplus.readthedocs.io/en/stable/swagger.html 如果有不清楚或缺少的地方,请提交 pull-requests(或询问)
        • 问题是,对于那些不清楚或缺失的部分进行 PR,您需要知道解决方案是什么。我花了很长时间尝试将字段设置为密码类型输入。诸如此类的随意。哦,并试图让一个 API 分布在多个文件中。不要误会我的意思,这是我解决这个问题的首选答案,但有时比实现目标更难
        • 重要要注意 Flask-RESTPlus 项目应被视为未维护并被分叉到另一个项目。
        【解决方案6】:

        你也可以使用connexion

        “Connexion 是一个基于 Flask 的框架,用于根据 YAML 中的 Swagger 2.0 规范文件自动处理您的 REST API 请求。”

        【讨论】:

        • Connexion 基于 OpenAPI 2.0 规范。这令人失望,因为 OpenAPI 已经升级到 3.0!
        • Connexion 2 最近发布 - 它声称实现了 OpenAPI 3.0。如果connexion.App() 是用options={'uri_parsing_class': OpenAPIURIParser } 参数定义的,我发现它更符合规范
        【解决方案7】:

        如果你不使用flask-restful 扩展,你可以看看flask-sillywalk

        【讨论】:

          【解决方案8】:

          您可以使用flask-restful-swagger

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2014-08-16
            • 2013-06-08
            • 2013-06-19
            • 1970-01-01
            • 2015-01-05
            • 1970-01-01
            相关资源
            最近更新 更多