1

我们有一个现有的烧瓶应用程序,我们想转移到连接。应用程序是否仍然可以使用烧瓶运行,例如“烧瓶运行”。我们在希望继续使用的 cli 中使用“管理”插件。

我们尝试修改应用工厂方法以使用连接烧瓶应用。使用“运行烧瓶”我们得到一个错误,“应用程序”不是烧瓶应用程序。

    app = connexion.FlaskApp(__name__.split('.')[0])
    app.add_api('some_api.yml')
    return app

还尝试创建这两个应用程序。

    app = Flask(__name__.split('.')[0])
    connexion_app = connexion.FlaskApp(__name__.split('.')[0])
    connexion_app.add_api('./api/resources/reload_spec.yml')
    return app

使用第一种方法运行 'flask run' 会给出一个错误,即 'app' 不是有效的烧瓶应用程序:RuntimeError: app is not a valid flask.app.Flask 应用程序实例

第二种方法似乎没有生成 UI,这并不奇怪,因为 connexion_app 没有运行。

这甚至可能吗?

4

3 回答 3

5
    # factory.py

    # connexion app
    app = connexion.FlaskApp(__name__.split('.')[0])
    app.add_api('some_api.yml')

    # flask app
    app = app.app
    # flask-specific code
    return app

这适用于烧瓶运行,并显示招摇文档。

$ flask run
 * Serving Flask app "app/app.py"
<snip>
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)`

于 2019-08-15T17:26:41.340 回答
0
# app.py
app = connexion.FlaskApp(__name__.split('.')[0])
app.add_api('some_api.yml')
app.run(port=8080)

上面应该运行 python app.py

要生成 UI,请使用pip install connexion[swagger-ui] 并导航到{base_path}/ui/

基于https://github.com/zalando/connexion

于 2019-08-05T09:40:36.110 回答
0

更改app = connexion.FlaskApp(__name__.split('.')[0])app = connexion.App(__name__.split('.')[0])

于 2019-08-08T14:31:17.577 回答