gpt4 book ai didi

swagger - 虚张声势.AspNet.Core : Swagger UI shows empty page - How to fix?

转载 作者:行者123 更新时间:2023-12-05 02:06:05 32 4
gpt4 key购买 nike

我将 Swashbuckle.AspNet.Core 添加到我的存储库并使用默认值初始化了所有内容。

尽管我可以看到 /swagger/v1/swagger.json 的 JSON 输出打开 /swagger/index.html 只是产生一个空页面。

为什么?


enter image description here



这是我的代码

public void ConfigureServices(IServiceCollection services)
{
services
.AddSwaggerGen()
.AddControllers()
;
}

// This method gets called by the runtime once. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, Options options)
{
if (env.IsDevelopment()) app.UseDeveloperExceptionPage();

app
.UseHttpsRedirection()
.UseRouting()
.UseAuthorization()
.UseEndpoints(endpoints => endpoints.MapControllers())
.UseSwagger()
;

if (env.IsDevelopment()) app.UseSwaggerUI();
}

最佳答案

您没有正确配置 Swashbuckle 服务。

在您的 configureServices 方法中,对 AddSwaggerGen 的调用具有“可选参数”,因此您指定的方式将起作用,但执行以下操作更为常见:

  services.AddSwaggerGen(config =>
{
config.SwaggerDoc("v1", new OpenApiInfo() { Title = "Payment Card Info API", Version = "v1" });
});

Title 是您的 Swagger 文档将显示的标题,version 是您的文档中显示的 API 的广告版本,第一个“v1”参数是将在实际 swagger URL 中使用的版本参数服务器 json 文件。

然而,您在“配置”方法中放置的代码不是可选的,必须以特定方式完成。

app.UseSwagger();
app.UseSwaggerUI(config =>
{
config.SwaggerEndpoint("/swagger/v1/swagger.json", "Payment Card Info API");
});

“必须手动配置 UseSwaggerUI 调用,因为看起来代码中的默认值根本不会自动工作。

默认情况下,您的 swagger json 文档将始终位于 "/swagger/"+ swaggerDoc 调用中的第一个版本参数 + "/swagger.json”(可以更改,但我不推荐)

您的 swagger 端点调用必须是提供 json 的实际 URL 以及您选择的用于标记它的名称。

我还强烈建议将您的 UseSwaggerUI 调用包装在“env.IsDevelopment”调用中,这样当您对应用程序进行生产构建时它会自动关闭,因此在您的服务部署后它不会可用。

这是我的做法。

Visual Studio 2019 Screen Shot

关于swagger - 虚张声势.AspNet.Core : Swagger UI shows empty page - How to fix?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62983271/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com