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.
Happy coding :)
En savoir plus sur swagger :
Documentation pour mettre en place Swagger
Commentaires