Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Metody WithOpenApi zostały przestarzałe na platformie .NET 10. Wywołanie tych metod powoduje teraz wygenerowanie diagnostyki czasu kompilacji ASPDEPR002 i standardowego Obsolete ostrzeżenia, które stwierdza:
Funkcja WithOpenApi jest przestarzała i zostanie usunięta w przyszłej wersji. Aby uzyskać więcej informacji, zobacz https://aka.ms/aspnet/deprecate/002.
Wersja wprowadzona
.NET 10 (wersja zapoznawcza 7)
Poprzednie zachowanie
Wcześniej można było użyć WithOpenApi metody rozszerzenia bez żadnych ostrzeżeń:
app.MapGet("/weather", () => ...)
.WithOpenApi(); // No warnings.
Nowe zachowanie
Począwszy od platformy .NET 10, użycie WithOpenApi metody rozszerzenia powoduje wygenerowanie ostrzeżenia kompilatora:
app.MapGet("/weather", () => ...)
.WithOpenApi(); // Warning ASPDEPR002: WithOpenApi is deprecated...
Jednak to wywołanie nadal się kompiluje i wykonuje.
Typ zmiany przełamującej
Ta zmiana może mieć wpływ na zgodność źródła .
Przyczyna zmiany
WithOpenApi zduplikowana funkcjonalność teraz zapewniana przez wbudowany potok generowania dokumentów OpenAPI. Wycofanie go upraszcza warstwę interfejsu API i przygotowuje do jego ewentualnego usunięcia.
Zalecana akcja
Usuń .WithOpenApi() wywołania z kodu.
Jeśli użyłeś
Microsoft.AspNetCore.OpenApido generowania dokumentów, użyj metody rozszerzenia AddOpenApiOperationTransformer<TBuilder>(TBuilder, Func<OpenApiOperation,OpenApiOperationTransformerContext,CancellationToken,Task>).Przed:
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();Po:
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();Jeśli używałeś
Swashbuckledo generowania dokumentów, użyj APIIOperationFilter.Jeśli używałeś
NSwagdo generowania dokumentów, użyjIOperationProcessorAPI.