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

Azure AKS上的ingress nginx后面带有招摇过市UI的HTTPS API的API调用问题

微生青青
2023-03-14

我正在公开一个HTTPS服务API网关,该网关具有托管在带有ingress nginx控制器的Azure AKS群集上的Swagger UIhttps://kubernetes.github.io/ingress-nginx/

在我的域中公开路径。com/swagger工作得很好,但当我尝试进行API调用时(POST、GET等)我得到一个404错误。

我的入口配置如下所示:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: api-gateway-ingress
  annotations:
    nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
    cert-manager.io/cluster-issuer: letsencrypt-prod #letsencrypt-staging
    nginx.ingress.kubernetes.io/ssl-redirect: 'true'
spec:
  tls:
    - hosts:
        - my-domain.com
      secretName: tp-api-gateway-wildcard # get it from certificate.yaml
  rules:
    - host: my-domain.com
      http:
        paths: 
          - path: /swagger
            pathType: Prefix
            backend:
              service:
                name: api-gateway
                port:
                  number: 80
  ingressClassName: nginx

有人知道如何成功地进行API调用吗?非常感谢。

共有1个答案

秋向阳
2023-03-14

设法进行API调用,因为我只公开了子路径/swagger,在那里我只能访问我的域。com/swagger而不是其他路径。

更改了配置,例如:

...
rules:
    - host: my-domain.com
      http:
        paths: 
          - path: /
            pathType: Prefix
...
 类似资料:
  • 我有一个软件,它有两个不同的任务: 假设一个应用任务 一个Restapi任务 基本上下文{host}/application/…上的应用程序任务。。。使用Springboot初始化,如下所示: 包含swagger的restapi任务配置如下(我认为此时不需要restapiendpoint): 因此,此配置在我的本地计算机上运行良好。问题是,如果此配置在反向代理之后运行,我将无法访问swagger

  • 我试图通过Swagger UI记录在供应商产品(WSO2 ESB)中开发的现有API服务,以供公司内部使用。供应商产品不支持招摇过市。我计划以编程方式检查/处理API服务的源代码(编写在供应商产品中),并在中生成一个包含swagger定义文件的目录/文件夹/库。json或。yml格式。那很好,我能做到。 这些api定义文件中的每一个都将在swagger UI中很好地呈现,我正在考虑使用https:

  • 我试图在我的微服务项目中生成一个单独的招摇过市,在Api网关中将所有服务招摇过市聚合成一个单独的招摇过市。为了实现这一点,我将遵循下一个教程https://objectpartners.com/2017/09/28/aggregate-services-into-a-single-swagger 这里的问题是,当我尝试设置绝对URL时,我收到的输出是未能加载API定义。未定义的http://loc

  • 我的pom.xml 招摇过市配置 服务器日志 它说映射: 但这些都不起作用(404): 如果我使用sping-fox较低版本,那么我将在我的日志中得到它已映射{[/v2/api-docs}],方法=[GET]。但是,我看不到在那里生成的任何json。

  • 如何仅显示类型为GET in Swagger page的API并隐藏其他API?我发现属性ApiExplorerSettings(IgnoreApi=true)可以从Swagger页面隐藏API,但是我有很多API要隐藏,我需要一种根据其HTTP类型隐藏API的方法。我尝试过这种方法: 但没用

  • 我使用Springfox从Spring Boot REST控制器生成了Swagger API规范。 我注意到一个问题,示例值/模型无法显示响应。 作为调查,我在http://localhost:8080/v2/api-文档,并在https://editor.swagger.io/,它也无法显示示例值/模型。这似乎是由于模式没有正确引用模型对象(“Car”)造成的。 但是从Swagger的API文档