我希望将由 swagger-codegen
生成的Python服务器与现有的Flask应用程序整合。 swagger-codegen
根据Swagger API规范
生成基于Connexion
库的Python实现。
我发现的示例似乎都期望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应用程序,可能像这样:
然而,我有现有的蓝图、配置和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?是否有人走过这条路?