public void Configure(SwaggerGenOptions options) { options.TagActionsBy(api => { if (api.ActionDescriptor is ControllerActionDescriptor controllerActionDescriptor) { return(new[] { controllerActionDescriptor.ControllerName }); } if (api.HttpMethod != null) { return(new[] { api.HttpMethod }); } throw new InvalidOperationException("Unable to determine tag for endpoint."); }); options.OrderActionsBy((apiDesc) => $"{apiDesc.ActionDescriptor.RouteValues["controller"]}_{apiDesc.HttpMethod}"); options.IgnoreObsoleteActions(); options.IgnoreObsoleteProperties(); options.DefaultResponseForSecuredOperations(); options.TreatBadRequestAsDefaultResponse(); if (!restApiOptions.AllowAnonymousAccessForDevelopment) { options.OperationFilter <SecurityRequirementsOperationFilter>(); } options.DocumentFilter <SwaggerEnumDescriptionsDocumentFilter>(); if (restApiOptions.UseApiVersioning) { options.ApplyApiVersioningFilters(); foreach (var description in versionDescriptionProvider.ApiVersionDescriptions) { try { options.SwaggerDoc( description.GroupName, new OpenApiInfo { Title = Assembly.GetEntryAssembly() !.GetApiName(), Version = description.ApiVersion.ToString(), }); }