Swagger : ajouter un paramètre header à toutes vos actions

Swagger est un outil permettant de documenter vos API automatiquement.

Dans le cas où vous ajoutez un filtre obligeant chacune de vos routes à avoir un header, swagger ne le détecte pas automatiquement.
Et de ce fait la documentation autogénérée est incomplète. 
Il existe une solution simple pour résoudre cette problématique et nous allons vous la présenter en 2 étapes.

Etape 1 : Ajouter un IOperationFilter

Pour ajouter ce paramètre à vos actions, il faut créer une classe implémentant IOperationFilter.

Création d'un filtre d'opération ajoutant un paramètre Token de type string :

    public class AddTokenHeaderParameter : IOperationFilter
    {
        public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
        {
            if (operation.parameters == null)
            {
                operation.parameters = new List<Parameter>();
            }

            operation.parameters.Add(new Parameter
            {
                name = "Token",
                @in = "header",
                type = "string",
                required = true
            });
        }
    }

Etape 2 : Modifier le fichier SwaggerConfig

Puis dans le fichier SwaggerConfig il faut d'ajouter le filtre.

.EnableSwagger(c =>
                    {
                       ... autre code
                        // Ajout du filtre
                        c.OperationFilter<AddTokenHeaderParameter>();
                    })

Et voilà !
Vous n'aurez maintenant plus qu'a vous souciez de créer vos API comme d'habitude.


Affichage du paramétre Token
Happy coding :)

En savoir plus sur swagger :

Documentation pour mettre en place Swagger

Photo de profil

Ces billets pourraient aussi vous intéresser

Vous nous direz ?!

Commentaires

comments powered by Disqus