Aracılığıyla paylaş


WithOpenApi uzantısı yönteminin kullanımdan kaldırılması

WithOpenApi Yöntemler .NET 10'da kullanım dışı bırakılmıştır. Bu yöntemleri çağırmak artık derleme zamanı tanılamasını ASPDEPR002 ve şunları belirten standart Obsolete bir uyarı oluşturur:

WithOpenApi kullanım dışıdır ve gelecek bir sürümde kaldırılacaktır. Daha fazla bilgi için https://aka.ms/aspnet/deprecate/002 adresini ziyaret edin.

Sürüm kullanıma sunulmuştur

.NET 10 Preview 7

Önceki davranış

Daha önce, herhangi bir uyarı olmadan uzantı yöntemini kullanabilirsiniz WithOpenApi :

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

Yeni davranış

.NET 10'dan başlayarak, uzantı yönteminin WithOpenApi kullanılması bir derleyici uyarısı oluşturur:

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

Ancak, fonksiyon çağrısı hala derlenebilir ve yürütülebilir.

Kesinti yaratan değişiklik türü

Bu değişiklik kaynak uyumluluğunuetkileyebilir.

Değişiklik nedeni

WithOpenApi artık yerleşik OpenAPI belge oluşturma işlem hattı tarafından sağlanan yinelenen işlevler. Kullanımdan kaldırılması, API arabirimini basitleştirir ve nihai olarak kaldırılması için hazırlık yapar.

.WithOpenApi() çağrılarını kodunuzdan kaldırın.

  • Microsoft.AspNetCore.OpenApi belgesini oluşturmak için kullandıysanız, AddOpenApiOperationTransformer<TBuilder>(TBuilder, Func<OpenApiOperation,OpenApiOperationTransformerContext,CancellationToken,Task>) uzantı yöntemini kullanın.

    Önce:

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

    Sonra:

    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();
    
  • Belge oluşturma için kullandıysanız Swashbuckle API'yi IOperationFilter kullanın.

  • Belge oluşturma için kullandıysanız NSwag API'yi IOperationProcessor kullanın.

Etkilenen API'ler