0

我是使用 JetBrains Rider 的新手,我一直在我的 Mac 上使用 VSCode。我从 JetBrains Rider 看到了一个非常奇怪的行为。行为是,当我使用 Swagger 工具包托管 Web API 并使用 VSCode 运行该代码时,swagger 页面确实显示了在 HTTP 和 HTTPS 之间切换的选项。

但是,当我使用 JetBrains Rider 运行相同的代码时,我什至无法在 HTTP/HTTPS 之间进行选择。它默认使用 HTTPS 加载,差不多就是这样,在那之后我没有切换选项。

这真的很令人困惑,因为它是完全相同的代码,并且如果用户可以在 HTTP 或 HTTPS 模式下运行此 API,代码就是驱动力。但听起来 Rider 正在做或不做的事情会导致这种意外行为。

更多细节:

我们正在使用Swashbuckle.AspNetCore工具包,负责设置 HTTP 协议的代码是

app.UseSwagger(c =>
            {                    
                c.RouteTemplate = "gms/swagger/{documentName}/swagger.json";
                c.PreSerializeFilters.Add((swaggerDoc, httpReq) =>
                {
                    swaggerDoc.Servers = new List<OpenApiServer>
                    {
                        new OpenApiServer { Url = $"https://{httpReq.Host.Value}" }
                    };

#if DEBUG
                    if (env.IsDevelopment())
                    {
                        // Enable http option for local dev environment
                        swaggerDoc.Servers.Add(new OpenApiServer { Url = $"http://{httpReq.Host.Value}" });
                    }
#endif
                });
                c.SerializeAsV2 = true;
            });

是的,执行此代码时环境变量设置为开发。

我需要做些什么来改变这种行为吗?

4

0 回答 0