使用入口控制器在带有swagger .net内核的Kubernetes中部署微服务

cyvaqqii  于 2022-11-06  发布在  .NET
关注(0)|答案(1)|浏览(141)

你好,我正在使用入口控制器的api网关和使用.net核心miroservice与swagger实现,我提到了大部分的例子/问题,它有关的堆栈流,但当我试图击中API从swagger它给404,有没有办法解决这个问题,而不指定服务名称在代码中?

kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$2
  name: rewrite
  namespace: default
spec:
  ingressClassName: nginx
  rules:
  - host: rewrite.bar.com
    http:
      paths:
      - path: /Service1(/|$)(.*)
        pathType: Prefix
        backend:
          service:
            name: LoginService
            port: 
              number: 80

当我尝试访问swagger时,我可以从{{domain}}/service 1/swagger/之类的URL访问它。
但swagger生成的API端点在URL中不包含service 1,这导致了404。我知道有从代码中更改开放API端点的解决方案,但我不想在代码中做任何更改,因为微服务不应该知道它将在哪里托管。
有什么建议吗?

kyxcudwk

kyxcudwk1#

您可以使用以下代码

app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint($"/Service1/swagger/v1/swagger.json", $"APP API - {version}");
            });

相关问题