Tengo una aplicación C # ASP.NET WebAPI con documentación de API que se genera automáticamente usando Swashbuckle . Quiero poder omitir ciertos métodos de la documentación pero parece que no puedo resolver cómo decirle a Swagger que no los incluya en la salida de la interfaz de usuario de Swagger.
Siento que tiene algo que ver con agregar un modelo o filtro de esquema, pero no es obvio qué hacer y la documentación solo parece proporcionar ejemplos de cómo modificar la salida de un método, no eliminarlo completamente de la salida.
Gracias por adelantado.
Alguien publicó la solución en github, así que voy a pegarla aquí. Todos los créditos van a él. https://github.com/domaindrivendev/Swashbuckle/issues/153#issuecomment-213342771
Crear primero una clase de atributo
Luego cree una clase de filtro de documentos
Luego, en la clase Swagger Config, agregue ese filtro de documentos
El último paso es agregar el atributo [HideInDocsAttribute] en el Controlador o Método que no desea que Swashbuckle genere documentación.
fuente
Puede eliminar las "operaciones" del documento swagger después de que se haya generado con un filtro de documentos; simplemente establezca el verbo en
null
(aunque también puede haber otras formas de hacerlo)El siguiente ejemplo solo permite
GET
verbos, y está tomado de este problema .y en tu configuración de swagger:
fuente
path.get = null;
, como resultado, esas rutas aún se incluirán en el archivo Swagger, pero solo sin los detalles. Sería mejor incluirloApiExplorerSettingsAttribute
en su respuesta como lo mencionó en su respuesta original en GitHub. El uso de ApiExplorerSettings también puede evitar que se agregue información de tipo a laschemes
lista del archivo Swagger .Preferiría eliminar completamente las entradas del diccionario para elementos de ruta:
Con este enfoque, no obtendría elementos "vacíos" en la definición generada de swagger.json.
fuente
Hacer un filtro
Hacer un atributo
Aplicar en startup.cs
Agregue el atributo [SwaggerTag] a los métodos y controladores que desea incluir en Swagger JSON
fuente
Puede ayudar a alguien, pero durante el desarrollo (depuración) nos gusta exponer controladores y / o acciones completos y luego ocultarlos durante la producción (compilación de lanzamiento)
fuente
Basado en la respuesta de @spottedmahns . Mi tarea era viceversa. Mostrar solo los que están permitidos.
Marcos: .NetCore 2.1; Swagger: 3.0.0
Atributo agregado
E implementar IDocumentFilter personalizado
Código de ConfigureServices :
fuente
agregue una línea SwaggerConfig c.DocumentFilter ();
fuente
Agregue esto encima de los métodos que desea omitir.
fuente