Bonjour,
Les librairies suivantes sont déclarées obsolètes et je cherche à les remplacer :
Microsoft.AspNetCore.Mvc.Versioning
Microsoft.AspNetCore.Mvc.Versioning.ApiExplorer
Par défaut le gestionnaire de NuGet me propose d'utiliser les librairies suivantes :
Asp.Versioning.Mvc
Asp.Versioning.Mvc.ApiExplorer
Sauf qu'il me manque à présent des éléments.
Dans la méthode Startup.Configure(IApplicationBuilder app, IWebHostEnvironment env) le builder ne contient de méthode UseApiVersioning().
Code : Sélectionner tout - Visualiser dans une fenêtre à part app.UseApiVersioning();
Dans la méthode Startup.ConfigureServices(IServiceCollection services) le membre ErrorResponses n'est pas reconnu.
Et les objets DefaultErrorResponseProvider et ErrorResponseContext n'existent plus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 services.AddApiVersioning(options => { options.DefaultApiVersion = new ApiVersion(2, 0); options.AssumeDefaultVersionWhenUnspecified = true; options.ReportApiVersions = true; options.ApiVersionReader = ApiVersionReader.Combine(new HeaderApiVersionReader("x-api-version"), new MediaTypeApiVersionReader("version")); options.ErrorResponses = new ApiVersionErrorResponseProvider(); })
Je ne peux donc plus en hériter dans ce code :
Quelqu'un a-t-il été confronté à ce problème et sais comment y remédier ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 public class ApiVersionErrorResponseProvider : DefaultErrorResponseProvider { public override IActionResult CreateResponse(ErrorResponseContext context) { var message = "error Api version."; switch (context.ErrorCode) { case "UnsupportedApiVersion": message = "Unsupported Api version."; break; default: break; } var result = new ObjectResult(new ProblemDetails { Type = "API Version", Title = $"{context.ErrorCode} - {message}", Detail = context.MessageDetail, Status = context.StatusCode, Instance = context.Request.Path.Value, }) { StatusCode = context.StatusCode }; return result; } }
Merci.
Partager