Solución:
Tuve un problema, que
IServiceCollection no contiene una definición para ‘AddSwaggerGen’
Resulta que lo instalé Swashbuckle.AspNetCore.Swagger paquete nuget en lugar de Swashbuckle.AspNetCore.
En .NET Core 3, hay algunos problemas que se describen aquí. La solución es agregar lo siguiente al archivo del proyecto, reemplazando la versión anterior.
<PackageReference Include="Swashbuckle.AspNetCore" Version="5.0.0-rc2" />
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" Version="5.0.0-rc2" />
Esto sucede porque la implementación de AddSwaggerGen()
El método de extensión en ASP.NET Core requiere que proporciones Action<SwaggerGenOptions>
argumento que sirve como acción de configuración. Por ejemplo:
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });
});
Puede obtener más información sobre cómo configurar Swagger con la aplicación ASP.NET Core aquí.
ACTUALIZAR:
En versiones anteriores tenían la AddSwaggerGen()
método de extensión que no acepta argumentos, pero esta llamada iba acompañada de una llamada ConfigureSwaggerDocument(Action<SwaggerGenOptions> setupAction)
. Supongo que simplemente se deshicieron de ConfigureSwaggerDocument
y acción de configuración agregada a AddSwaggerGen()
método. Dicho esto, parece que su tutorial muestra cómo configurar una versión obsoleta de Swagger.
Respuesta tardía, pero como una nueva actualización de esta pregunta, acabo de notarlo para hacer AddSwaggerGen
funciona bien en .NET Core 3, necesita usar OpenApiInfo
en lugar de Info
. Entonces tu nuevo AddSwaggerGen
debería ser algo como esto:
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "The API", Version = "v1" });
});
También debe agregar lo siguiente a su using
directivas:
using Microsoft.OpenApi.Models;
Lea más aquí https://docs.microsoft.com/en-us/aspnet/core/tutorials/getting-started-with-swashbuckle?view=aspnetcore-3.1&tabs=visual-studio