【问题标题】:Adding Swagger to ASP.Net Core Web API将 Swagger 添加到 ASP.Net Core Web API
【发布时间】:2023-05-18 23:20:02
【问题描述】:

我正在尝试将 Swagger 添加到我的 ASP.Net Core Web API 项目中,如下所示:

public void ConfigureServices(IServiceCollection services)
{
       services.AddControllers();
       services.AddSwaggerGen(c =>
       {
          c.SwaggerDoc("v0.1", new OpenApiInfo { Title = "My API", Version = "v0.1" });
       });
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            ...
            app.UseHttpsRedirection();

            app.UseSwagger();
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v0.1/swagger.json", "My API V1");
            });

            app.UseRouting();

            app.UseAuthorization();
            ...
}

但我收到此错误:

找不到类型或命名空间名称“OpenApiInfo”

我已经安装了Swashbuckle.AspNetCore v4.0.1,我的项目是.Net Core 3.0。

【问题讨论】:

    标签: c# asp.net-core swagger asp.net-core-webapi


    【解决方案1】:

    它不起作用的原因是OpenApiInfo 类型与最新版本的Swashbuckle.AspNetCore 一起提供;打开 nuget 包管理器,勾选“包含预发布”复选框并将包更新到版本 5.0.0-rc3。

    然后它应该可以工作了。

    【讨论】:

      【解决方案2】:

      从 NuGet 包管理器添加最新版本的 Swashbuckle.AspNetCore 包,然后它就可以工作了。

      【讨论】: