如何使用flask_restplus设置基本URL?

时间:2019-02-23 02:27:55

标签: python swagger-ui flask-restplus

我正在使用来自Apache服务器的flask_restplus为Flask应用程序提供服务。我正在使用ProxyPass将所有流量通过某个网址扩展名转发到应用程序,例如apache .conf文件中的代码:

ProxyPass /some-extension http://127.0.0.1:3000
ProxyPassReverse /some-extension http://127.0.0.1:3000

flask_restplus api的设置如下:

from flask_restplus import Api
api = Api(
    title='App Title',
    doc='/docs'
) 

该应用程序正常运行,除了当我转至大摇大摆的路线/some-extension/docs时,烧瓶服务器开始在网址库/ swaggerui /而不是必需的/some-extension/swaggerui上寻找大摇大摆的依赖关系,依此类推摇摇欲坠的用户界面无法加载。

是否有一种方法可以配置flask_restplus(或其他方式),以便为/some-extension/swaggerui/(而不是根URL)提供大张旗鼓?

1 个答案:

答案 0 :(得分:0)

好,经过一番摆弄就到了。您需要将流量代理到扩展程序,并设置带有蓝图的烧瓶,以便整个应用程序也可以从该扩展程序运行。所以在您的apache配置中是这样的:

ProxyPass /some-extension http://127.0.0.1:3000/some-extension
ProxyPassReverse /some-extension http://127.0.0.1:3000/some-extension

...并且您必须像在您的apache配置中那样通过ProxyPass扩展名/ swaggerui:

ProxyPass /swaggerui http://127.0.0.1:3000/swaggerui
ProxyPassReverse /swaggerui http://127.0.0.1:3000/swaggerui

...,然后在您的flask_restplus设置中使用此模式(来自official guide):

from flask import Flask, Blueprint
from flask_restplus import Api

app = Flask(__name__)
blueprint = Blueprint('api', __name__, url_prefix='/some-extension')
api = Api(blueprint, doc='/docs/')
app.register_blueprint(blueprint)