gpt4 book ai didi

swagger - 尝试通过 HTTPS 传递 swagger.json 时出现 "No spec provided"错误

转载 作者:行者123 更新时间:2023-12-04 08:40:18 24 4
gpt4 key购买 nike

如果我尝试通过 HTTPS 使用 Flask RestPlus 交付 Swagger UI,我只会在根 URL 中看到“未提供规范”错误消息,并且永远不会加载完整的 Swagger UI。但是,如果我访问 API 端点,它们会按预期返回响应。

查看错误页面的源 HTML,我注意到 swagger.json正在从 http://myhost/ 获取而不是 https://myhost/
我在 the restplus Github issues 上发现了完全相同的问题

我已经通过 the monkey-patch 暂时解决了我的问题那个页面上提到的。 Swagger UI 加载,查看 HTML 源代码,我看到 swagger.json确实取自 https://myhost .

为什么会发生这种情况,我该如何在没有猴子补丁的情况下修复它?

HTTPS 由 Cloudflare 的“灵活”HTTPS 服务提供。

我的应用程序在 Nginx 后面,它是这样配置的,据我所知,并没有引起任何问题:

...
http {
...
server {
location / {
charset UTF-8;
try_files $uri @proxy_to_app;
}
location @proxy_to_app {
charset UTF-8;
proxy_intercept_errors on;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://127.0.0.1:5000;
}
}
}

最佳答案

我在下面使用它来让它工作。您可以在下面的链接中查看稳定的示例。

http://flask-restplus.readthedocs.io/en/stable/example.html

from werkzeug.contrib.fixers import ProxyFix
app = Flask(__name__)
app.wsgi_app = ProxyFix(app.wsgi_app)

关于swagger - 尝试通过 HTTPS 传递 swagger.json 时出现 "No spec provided"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51292579/

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