Swagger




Incluir Swagger en un proyecto ASP.NET Core Razor Pages es una excelente forma de documentar y probar una API.
Como primer paso se debe instalar desde NuGet la dependencia:

Swashbuckle.AspNetCore

Tambien se puede instalar desde PowerShell (dentro de la carpeta de la solucion) con:
Install-Package Swashbuckle.AspNetCore


Solo queda configurar Swagger dentro de 'Program.cs' como muestra el siguiente ejemplo:
        
var builder = WebApplication.CreateBuilder(args);

// Agregar servicios de Swagger
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

var app = builder.Build();

// Usar Swagger solo en desarrollo o siempre (opcional)
if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI();
}

app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();

app.MapRazorPages();

app.Run();
        

Con la siguiente URL en el navegador podemos usar el Swagger:

https://localhost:[puerto]/swagger


Se pueden modificar los datos que aparecen en la vista de Swagger con, por ejemplo:
        
builder.Services.AddSwaggerGen(c =>
{
    c.SwaggerDoc("v1", new() { Title = "Mi API", Version = "v1" });
});
        

Para que en la vista de Swagger se muestren descripciones explicativas que se pueden agregar a cada 'Controller'
 mediante '///sumary, params, return, responce'.
En el archivo .csproj y agregá:
        
<PropertyGroup>
  <GenerateDocumentationFile>true</GenerateDocumentationFile>
  <NoWarn>$(NoWarn);1591</NoWarn> 
</PropertyGroup> 
        
            
En Program.cs agregar:
        
builder.Services.AddSwaggerGen(c =>
{
    var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
    var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
    c.IncludeXmlComments(xmlPath);
});
        

Si fuera necesario que la API contenga 'Views' ademas del Swagger, se puede creando 'Controllers' distintos para cada cosa. En el siguiente ejemplo
ejecutable se puede ver:

CODIGO.