IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Net 7.0 : Remplacer Microsoft.AspNetCore.Mvc.Versioning.ApiExplorer


Sujet :

ASP.NET

  1. #1
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 867
    Points
    5 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 867
    Points : 5 772
    Par défaut Net 7.0 : Remplacer Microsoft.AspNetCore.Mvc.Versioning.ApiExplorer
    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.
    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();
    })
    Et les objets DefaultErrorResponseProvider et ErrorResponseContext n'existent plus.
    Je ne peux donc plus en hériter dans ce code :
    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;
        }
    }
    Quelqu'un a-t-il été confronté à ce problème et sais comment y remédier ?

    Merci.

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 867
    Points
    5 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 867
    Points : 5 772
    Par défaut
    Je suis en train de migrer vers Net 8 et du coup, me repenche sur ce problème que j'avais mis de coté.
    J'ai depuis trouvé de la documentation.

    Notamment ces deux là:
    https://github.com/dotnet/aspnet-api...wiki/Migration
    https://github.com/dotnet/aspnet-api...-Compatibility

    OK, je vois le principe.
    On ajoute un AddProblemDetails avant d'appeler AddApiVersioning en lui fournissant éventuellement une option pour personnaliser la réponse.
    Mais j'ai l'impression que ce AddProblemDetails est très générique et rien n'explique comment filtrer sur les problèmes de version.

Discussions similaires

  1. [VB.net] remplacer Microsoft.VisualBasic.vbNewLine dans une const
    Par salihovic dans le forum Windows Forms
    Réponses: 0
    Dernier message: 21/06/2010, 18h47
  2. aLinks remplacé dans les dernières versions d'Excel?
    Par chris_kil dans le forum Macros et VBA Excel
    Réponses: 54
    Dernier message: 20/08/2007, 12h06
  3. [VB.NET 2.0] Comparaison de numéro de version
    Par exclusif dans le forum Windows Forms
    Réponses: 6
    Dernier message: 23/08/2006, 19h17
  4. Réponses: 1
    Dernier message: 05/06/2006, 18h27
  5. Réponses: 5
    Dernier message: 18/02/2004, 18h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo