【发布时间】:2019-02-18 10:17:56
【问题描述】:
我在 AKS 上部署了两个 kubernetes 服务,它们从 Nginx 入口控制器接收流量。这两个服务的端点是https:<dns>/service1和https:<dns>/service2。现在我想为每个服务设置 Swagger。下面是我为其中一项服务设置 Swagger UI 的方法。
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/service1/swagger/v1/swagger.json", "API V1");
});
通过这个配置,我可以通过https:<dns>/service1/swagger访问swagger。
现在的问题是,在 Swagger UI 中,当我想通过单击“试用”按钮然后单击执行按钮来测试 api 时,Swagger UI 访问的 url 是 https:<dns>/api/v1/contoller 而不是 https:<dns>/service1/api/v1/contoller。这意味着 Swagger UI 不知道路径 /service1/ 的存在。我发现了几个相关问题,例如How to change base url of Swagger in ASP.NET core
。但它们不是我的问题的解决方案。我的猜测是我需要为 Swagger 设置一个基本路径。如果有人能告诉我如何在 ASP.NET core 2.0 中为 Swagger 配置基本路径,将不胜感激。
【问题讨论】:
-
你有什么发现吗?遇到同样的问题,没有运气。
-
@ecramer 不幸的是,没有。这应该是在 Ingress 后面使用 swagger 时的常见问题,但我找不到任何帖子或文章提到它。
-
查看这篇文章:*.com/questions/45327119/…。不一定是最漂亮的解决方案,但它对我们有用
-
@ecramer 确实它也适用于我,非常感谢你让我知道。
标签: swagger asp.net-core-2.0 azure-aks