Partager via


Dépréciation de la méthode d’extension WithOpenApi

Les WithOpenApi méthodes ont été déconseillées dans .NET 10. L’appel de ces méthodes produit désormais le diagnostic ASPDEPR002 au moment de la compilation et un avertissement standard Obsolete qui indique :

WithOpenApi est déconseillé et sera supprimé dans une prochaine version. Pour plus d’informations, consultezhttps://aka.ms/aspnet/deprecate/002.

Version introduite

.NET 10 Preview 7

Comportement précédent

Auparavant, vous pouvez utiliser la méthode d’extension WithOpenApi sans avertissements :

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

Nouveau comportement

À compter de .NET 10, l’utilisation de la WithOpenApi méthode d’extension génère un avertissement du compilateur :

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

Toutefois, l’appel compile toujours et s’exécute.

Type de changement cassant

Cette modification peut affecter la compatibilité source .

Raison de la modification

WithOpenApi Fonctionnalité en double maintenant fournie par le pipeline de génération de documents OpenAPI intégré. La dépréciation simplifie la surface de l’API et se prépare à sa suppression éventuelle.

Supprimez les .WithOpenApi() appels de votre code.

  • Si vous avez utilisé Microsoft.AspNetCore.OpenApi pour la génération de documents, utilisez la méthode d’extension AddOpenApiOperationTransformer<TBuilder>(TBuilder, Func<OpenApiOperation,OpenApiOperationTransformerContext,CancellationToken,Task>) .

    Avant:

    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();
    

    Après :

    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 vous avez utilisé Swashbuckle pour la génération de documents, utilisez l’API IOperationFilter .

  • Si vous avez utilisé NSwag pour la génération de documents, utilisez l’API IOperationProcessor .

API affectées