J'ai une application WebAPI C # ASP.NET avec la documentation API générée automatiquement à l'aide de Swashbuckle . Je veux pouvoir omettre certaines méthodes de la documentation, mais je n'arrive pas à trouver comment dire à Swagger de ne pas les inclure dans la sortie de l'interface utilisateur de Swagger.
Je sens que c'est quelque chose à voir avec l' ajout d'un modèle ou d'un filtre de schéma, mais ce n'est pas évident de savoir quoi faire et la documentation ne semble fournir que des exemples sur la façon de modifier la sortie d'une méthode, pas de la supprimer complètement de la sortie.
Merci d'avance.
Quelqu'un a posté la solution sur github donc je vais la coller ici. Tous les crédits lui reviennent. https://github.com/domaindrivendev/Swashbuckle/issues/153#issuecomment-213342771
Créez d'abord une classe d'attribut
Créez ensuite une classe de filtre de document
Ensuite, dans la classe Swagger Config, ajoutez ce filtre de document
La dernière étape consiste à ajouter l'attribut [HideInDocsAttribute] sur le contrôleur ou la méthode dont vous ne voulez pas que Swashbuckle génère de la documentation.
la source
Vous pouvez supprimer les "opérations" du document swagger après sa génération avec un filtre de document - il suffit de définir le verbe sur
null
(cependant, il peut y avoir d'autres façons de le faire)L'exemple suivant autorise uniquement les
GET
verbes - et est tiré de ce problème .et dans votre configuration swagger:
la source
path.get = null;
- en conséquence, ces chemins seront toujours inclus dans le fichier Swagger mais seulement sans les détails. Il serait peut-être préférable d'inclure leApiExplorerSettingsAttribute
dans votre réponse comme vous l'avez mentionné dans votre réponse d'origine sur GitHub. L'utilisation d'ApiExplorerSettings peut également éviter d'ajouter des informations de type à laschemes
liste du fichier Swagger .Je préférerais supprimer complètement les entrées du dictionnaire pour les éléments de chemin:
Avec cette approche, vous n'obtiendrez pas d'éléments "vides" dans la définition swagger.json générée.
la source
Faire un filtre
Faire un attribut
Appliquer dans startup.cs
Ajoutez l'attribut [SwaggerTag] aux méthodes et aux contrôleurs que vous souhaitez inclure dans Swagger JSON
la source
Peut aider quelqu'un, mais pendant le développement (débogage), nous aimons exposer des contrôleurs et / ou actions entiers, puis les masquer pendant la production (version de version)
la source
Basé sur la réponse de @spottedmahns . Ma tâche était vice versa. Afficher uniquement ceux qui sont autorisés.
Cadres: .NetCore 2.1; Swagger: 3.0.0
Attribut ajouté
Et implémentez IDocumentFilter personnalisé
Code de ConfigureServices :
la source
ajouter une ligne SwaggerConfig c.DocumentFilter ();
la source
Ajoutez ceci en plus de vos méthodes que vous souhaitez omettre.
la source