当前位置: 首页 > 知识库问答 >
问题:

如何设置基本网址以flask_restplus?

贺福
2023-03-14

我正在为来自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

< code>flask_restplus api的设置如下:

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

该应用程序可以正常工作,除了当我转到swagger路由/thing-扩展/docs时,烧瓶服务器开始在url基础上寻找swagger依赖项 /swaggerui/(而不是所需的/thing-扩展/swaggerui),因此swagger UI无法加载。

有没有一种方法可以配置< code>flask_restplus(或其他方式),让swagger得到< code >/some-extension/swagger ui/(而不是根url)?

共有1个答案

孙永思
2023-03-14

好的,在一些摆弄之后到达了那里。您需要将流量代理到扩展,并设置一个带有蓝图的烧瓶,以便整个应用程序也从该扩展运行。因此,在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设置中使用此模式(来自官方指南):

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)
 类似资料:
  • 问题内容: 是否可以在 AngularJS 应用中向所有路由添加 基本URL ?本质上是更改其在服务器上的位置(如果可以的话,可以改变它的位置,因此可以通过而不是通过进行访问)。 __ 为了添加一些上下文,我正在尝试将现有的 Angular 应用放置在某种身份验证后面,以便成功登录后可以在该地址访问该应用。 问题是,如果我要在正常运行时加载应用程序(服务器显然会显示正确的页面),但是单击任何链接将

  • 我已经阅读了安装https的amazon ec2指南并完成了几个步骤。但它仍然不起作用。 签一个SSL认证,我用的是自签名证书。 使用aws iam将SSL证书上传到亚马逊服务器。 在ec2控制平台中,在当前安全组的入站中添加端口80和端口443 创建新的负载均衡器,在新的负载均衡器中添加端口80、端口443和带有上传证书的https的超文本传输协议,并在负载均衡器中分配当前实例 最后,我检查了实

  • 问题内容: 我正在使用CodeIgniter建立一个网站,我有各种资源可以像这样通过base_url]帮助器函数加载 产生(即www.mysite.com) 然后,我可以像这样在javascript中与另一个资源交换该资源 发生的事情是它将尝试加载资源而不使用php生成的绝对路径,因此我的解决方案是使用php在每个页面中添加一个虚拟标记,如下所示 然后,我将javascript行修改为 它确实可以

  • 问题内容: 我正在为我的网站使用Codeigniter。我必须使用cron作业来运行控制器功能之一。我在网站上使用路线。而且我不在网址中使用index.php。 例如http://my-domain.com/welcome/show,这里Welcome是我的控制器,而show是该控制器的功能名称。 我已经习惯了 它给出了“没有这样的目录” 如何在CPANEL中为上述网址设置cron jon。 谢谢

  • 问题内容: 我在不同的机器上使用Selenium来自动化MVC Web应用程序的测试。 我的问题是我无法获取每台计算机的基本URL。 我可以使用以下代码获取当前网址: 但这对我需要导航到其他页面没有帮助。 理想情况下,我可以使用以下内容导航到不同的页面: 我正在使用的可能的解决方法是: 有没有更好的方法可以做到这一点? 问题答案: 解决此问题的最佳方法是创建URL实例。 这是因为.NET中的 类已

  • 基础设置 机器人信息 自动应答