Desuso del método de extensión WithOpenApi

Los métodos WithOpenApi han quedado en desuso en .NET 10. Invocar estos métodos ahora genera el diagnóstico en tiempo de compilación y una advertencia estándar que indica:

WithOpenApi está en desuso y se quitará en una versión futura. Para más información, visite .

Versión introducida

.NET 10 Preview 7

Comportamiento anterior

Anteriormente, podías usar el método de extensión sin advertencias:

app.MapGet("/weather", () => ...)
   .WithOpenApi();   // No warnings.

Nuevo comportamiento

A partir de .NET 10, usar el método de extensión WithOpenApi genera una advertencia del compilador.

app.MapGet("/weather", () => ...)
   .WithOpenApi();   // Warning ASPDEPR002: WithOpenApi is deprecated...

Sin embargo, la llamada todavía se compila y ejecuta.

Tipo de cambio disruptivo

Este cambio puede afectar a la compatibilidad de origen.

Motivo del cambio

funcionalidad duplicada que ahora proporciona el proceso integrado de generación de documentos OpenAPI. Al marcarlo como en desuso simplifica la superficie del API y prepara para su eliminación eventual.

Elimine las llamadas del código .

  • Si usó para la generación de documentos, use el método de extensión .

    Before:

    using Microsoft.AspNetCore.OpenApi;
    
    var builder = WebApplication.CreateBuilder();
    var app = builder.Build();
    
    app.MapGet("/weather", () => ...)
       .WithOpenApi(operation =>
       {
           // Per-endpoint tweaks
           operation.Summary     = "Gets the current weather report.";
           operation.Description = "Returns a short description and emoji.";
           return operation;
       });
    
    app.Run();
    

    After:

    using Microsoft.AspNetCore.OpenApi;
    
    var builder = WebApplication.CreateBuilder();
    var app = builder.Build();
    
    app.MapGet("/weather", () => ...)
       .AddOpenApiOperationTransformer((operation, context, ct) =>
       {
           // Per-endpoint tweaks
           operation.Summary     = "Gets the current weather report.";
           operation.Description = "Returns a short description and emoji.";
           return Task.CompletedTask;
       });
    
    app.Run();
    
  • Si usó para la generación de documentos, use la API.

  • Si usó para la generación de documentos, use la API.

Las APIs afectadas