【问题标题】:Not able to open swagger documentation in gcp ingress无法在 gcp 入口中打开 swagger 文档
【发布时间】:2020-03-09 17:48:36
【问题描述】:

我使用flask_restplus 库创建了一个简单的flask api,带有swagger 集成。它在本地主机中运行良好。但是当我在 gcp kubernetes 中使用它时 入口,它正在为端点提供结果,但无法显示文档或招摇用户界面。以下是浏览器控制台错误browser console errors

这是ingress.yml文件

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-restplustest
  annotations:
    
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
    kubernetes.io/ingress.global-static-ip-name: "web-static-ip"
spec:
  rules:
  - http:
      paths:
      - path: /rt
        backend:
          serviceName: restplustest
          servicePort: 5000
在本地系统 localhost:5000/rt 显示 swagger-ui

【问题讨论】:

  • 您是否在本地测试过容器(不仅仅是代码)?这可能是容器环境的问题。如果绕过入口会发生什么,例如从另一个 pod 查询该 pod? (注意,你不会得到 UI,但应用程序日志应该显示 js 应用程序正在加载,你应该得到正确的 200 响应)
  • 是的容器在本地工作。
  • 你能从另一个 pod 试试吗?

标签: kubernetes google-cloud-platform google-kubernetes-engine kubernetes-ingress flask-restplus


【解决方案1】:

您的端点返回一个脚本,该脚本引用位于 /swaggerui/* 上的其他脚本,但该路径未在您的 Ingress 中定义。

如果您将该路径也添加到您的服务中,它可能会解决

  - path: /swaggerui/*
    backend:
      serviceName: restplustest
      servicePort: 5000

【讨论】:

  • 我试过了。这是说没有提供 api 定义
  • @Harhaaakr 你得到了什么错误信息或 http 状态码?
  • 我试过 /swaggerui/ 非常感谢!!
猜你喜欢
  • 1970-01-01
  • 2015-04-27
  • 2016-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-28
  • 2013-06-13
  • 1970-01-01
相关资源
最近更新 更多