如何使用flask_restplus为swagger设置基本URL?

问题描述 投票:0回答:1

我正在使用来自apache服务器的flask_restplus提供烧瓶应用程序。我正在使用ProxyPass将所有流量转发到应用程序的某个URL扩展名,如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时,烧瓶服务器开始寻找url base / swaggerui /(而不是所需的/some-extension/swaggerui)的swagger依赖关系,因此swagger UI无法加载。

有没有办法配置flask_restplus(或其他),以便swagger获得服务/some-extension/swaggerui/(而不是根URL)?

python swagger-ui flask-restplus
1个回答
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)
© www.soinside.com 2019 - 2024. All rights reserved.