Python连接不显示Swagger UI

时间:2017-09-15 20:05:52

标签: python flask swagger swagger-ui

我使用connexion模块构建了基于Python / Flask的REST API。这与使用swagger.yml文件定义REST API非常有效。应用程序正在运行,但是当我导航到/ ui时,我在浏览器中得到的是:

enter image description here

我还没有禁用用户界面,所以我不确定发生了什么以及为什么用户界面没有被显示。我的应用程序没有/ static文件夹(它只是一个API),因此应用程序不提供任何静态文件,不确定是否与问题相关。

任何关于我做错事的建议,提示或提示都将非常感激!

以下是我的代码的简化示例:

JTabbedPane tabs = new JTabbedPane();
JFrame frame = new JFrame("crm");
frame.setSize(750, 600);
JPanel panel = new JPanel(); 
JPanel qw = new JPanel();
panel.setPreferredSize(new Dimension(650,500));
frame.add(tabs);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.add(panel, BorderLayout.CENTER);
panel.setLayout(null);
panel.setPreferredSize(frame.getSize());
tabs.add("1", panel);
tabs.addTab("2", qw);

frame.setLocationRelativeTo(null);
frame.setVisible(true);

提前致谢, 道格

4 个答案:

答案 0 :(得分:0)

这是由缺少尾部斜杠造成的。只需在网址末尾添加斜杠即可。

相关问题https://github.com/zalando/connexion/issues/346

答案 1 :(得分:0)

从2.0.1版本开始的

连接中没有捆绑 swagger-ui 。您已经使用以下命令明确安装了它

pip install connexion[swagger-ui]

安装后。昂首阔步将与连接。在较早的版本中,用于与/ ui一起使用的swagger会在http(s)://host:port

末尾添加到您的网址中

但是从2.0.x开始,请使用http(s)://host:port/<basepath>/ui

答案 2 :(得分:0)

我的stackoverflow名誉太低,无法评论上面Ashraff Ali Wahab的答案,但是我发现自己可以自己编辑它。可以说,在我理解所呈现的shell语法错误之后,Pablo Marin-Garcia指出的问题为我解决了问题。这是在Unix / Linux中正确安装swagger-ui插件所需的shell语法:

pip install 'connexion[swagger-ui]'

任何匹配的引号都可以。请注意,没有引号的pip命令将成功运行,但它不会像您期望的那样安装swagger-ui组件。此外,我花了很多时间在这个问题上head头,因为我是在virtualenv中完成的。我还用find在virtualenv中搜索了swagger-ui组件,发现安装了一些存根。因此,如果您是python的新手,或者很着急,那么可能很容易错过。

最终,我决定添加一个 local_requirement.txt 文件,其中列出了正确的Werzueg,connexion和“ connexion [swagger-ui]”版本,这些文件是我在使用之前安装的库存 requirements.txt ,因为SmartBear工具生成的Flask API代码似乎过时了。

答案 3 :(得分:0)

我有同样的问题。我用

解决了
pip install pathlib swagger_ui_bundle