gpt4 book ai didi

python - 如何使用flask_restplus为swagger设置基本url?

转载 作者:太空宇宙 更新时间:2023-11-03 21:14:13 24 4
gpt4 key购买 nike

我正在从 apache 服务器使用 flask_restplus 提供 Flask 应用程序。我使用 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'
)

应用程序工作正常,除了当我转到 swagger 路由 /some-extension/docs 时,flask 服务器开始在 url 基址/swaggerui/处查找 swagger 依赖项(而不是所需的 /some-extension/swaggerui),因此 swagger UI 无法加载。

有没有办法配置flask_restplus(或其他方式)以便为swagger提供服务/some-extension/swaggerui/(而不是根url)?

最佳答案

好的,经过一番摆弄后到达那里。您需要将流量代理到扩展程序并设置带有蓝图的 flask ,以便整个应用程序也从该扩展程序运行。所以你的 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)

关于python - 如何使用flask_restplus为swagger设置基本url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54837636/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com