Если вы хотите исключить только один метод действия, поместите в него атрибут [ApiExplorerSettings(IgnoreApi = true)]
.
Вы также можете поместить его в целый класс контроллера.
Для массовых операций черезДля всего проекта вы можете использовать IOperationProcessor
, что-то вроде этого
public class IncludeControllersInSwagger : IOperationProcessor
{
public Task<bool> ProcessAsync(OperationProcessorContext context)
{
bool controllerIsIncluded = TakeADecisionBasedOn(context.ControllerType);
return Task.FromResult(controllerIsIncluded);
}
}
, а затем подключить его при запуске с помощью
RouteTable.Routes.MapOwinPath("swagger", app =>
{
app.UseSwagger(typeof(WebApiApplication).Assembly, settings =>
{
// the usual config, then:
settings.GeneratorSettings.OperationProcessors.Insert(0,
new IncludeControllersInSwagger());
});
});
. Вы можете написать код в TakeADecisionBasedOn
длявключать только определенные контроллеры или исключать пространство имен и т. д.