我有兴趣将swagger-codegen
生成的 Python 服务器与现有的 Flask 应用程序集成。 swagger-codegen
生成基于Connexion
库的 Python 实现Swagger API specification
。
我发现的所有示例似乎都期望connexion.App
管理整个flask
应用程序。
import connexion
app = connexion.App(__name__, specification_dir='swagger/')
app.add_api('my_api.yaml')
app.run(port=8080)
但是,我有现有的蓝图、配置和 sqlalchemy 模型,我想与生成的 Connexion API 集成。它看起来像是connexion.App.app
底层的 Flask 应用程序。一种选择可能是进入并扩展 Connexion Flask 应用程序,可能是这样的:
import connexion
app = connexion.App(__name__, specification_dir='swagger/')
app.app.config.from_pyfile('...')
db.init_app(app.app)
for blueprint in my_blueprints:
app.app.register_blueprint(blueprint)
app.add_api('my_api.yaml')
app.run(port=8080)
尝试搭载高度定制的 Connexion Flask 应用程序似乎比将裸蓝图集成connexion.Api
到我现有的 Flask 应用程序中更简单。但是,我无法轻易判断 Connexion 是否旨在与非 Connexion 管理的蓝图很好地配合使用。
在现有的传统 Flask 应用程序中集成 Connexion Swagger 定义的 API 的最佳方式是什么?有没有人走这条路?