我在尝试运行虚张声势时收到此错误。有什么想法吗?
我的配置服务类中有这个
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");
});
我今天遇到了同样的问题。查看Microsoft文档后,SwaggerDoc
似乎正在寻找字符串和Info
参数。在文件顶部,请确保包含using Swashbuckle.AspNetCore.Swagger;
并将OpenApiInfo
替换为 Info
。
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Info { Title = "testing",
Version = "v1" });
});
在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" });
});
特别是,如果你来自:开始使用Swashbuckle和 ASP.NET Core
。从版本 5.0.0 开始,SwaggerDoc 扩展方法现在需要 Microsoft.OpenApi.Models.OpenApiInfo
参数。
Swagger5.5.0 和 C#>
的示例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");
});
}
您需要将软件包Swashbuckle.AspNetCore
升级到最新版本v 5.0.0-rc5
解决了问题。
在该包中,它已经包括Microsoft.OpenApi
包程序集,您无需额外添加。您可以OpenApiInfo
、OpenApiContract
和更多的属性直接继承在可升级包中。