在尝试运行swashbuckle时出现此错误。有任何想法吗?
我的ConfigureServices类中有这个
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "testing",
Version = "v1" });
});
这在我的配置类中
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
});
答案 0 :(得分:3)
在 Swashbuckle.AspNetCore版本5.0.0 (尚未发布,于2019年11月)之前,SwaggerDoc扩展方法需要一个Swashbuckle.AspNetCore.Swagger.Info
参数。因此,您必须编写:
// Register the Swagger generator, defining 1 or more Swagger documents
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });
});
尤其是如果您来自:Get started with Swashbuckle and ASP.NET Core
从5.0.0版开始,SwaggerDoc扩展方法现在需要一个Microsoft.OpenApi.Models.OpenApiInfo
参数。
答案 1 :(得分:0)
我今天也遇到了同样的问题。查看Microsoft文档之后,看来SwaggerDoc
正在寻找一个字符串和一个Info
参数。在文件顶部,请确保您包含using Swashbuckle.AspNetCore.Swagger;
并将OpenApiInfo
替换为Info
。
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Info { Title = "testing",
Version = "v1" });
});
答案 2 :(得分:0)
您需要将软件包Swashbuckle.AspNetCore
升级到最新版本v 5.0.0-rc5
才能解决此问题。
在该软件包中,它已经包含Microsoft.OpenApi
软件包,您无需另外添加插件。
您OpenApiInfo
,OpenApiContract
以及更多属性直接通过可升级包继承。
答案 3 :(得分:0)
这里是C#摇摇欲坠的5.5.0&>的示例
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo
{
Title = "API Title is",
Version = "v1"
});
});
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
//app.UseMvc();
app.UseSwagger();
app.UseSwaggerUI(c => {
c.SwaggerEndpoint("/swagger/v1/swagger.json", "V1 api test");
});
}