internal ISwaggerProvider GetSwaggerProvider(HttpRequestMessage swaggerRequest) { var httpConfig = swaggerRequest.GetConfiguration(); var securityDefintitions = _securitySchemeBuilders.Any() ? _securitySchemeBuilders.ToDictionary(kvp => kvp.Key, kvp => kvp.Value.Build()) : null; // NOTE: Instantiate & add the XML comments filters here so they're executed before any // custom filters AND so they can share the same XPathDocument (perf. optimization) var modelFilters = _modelFilters.Select(factory => factory()).ToList(); var operationFilters = _operationFilters.Select(factory => factory()).ToList(); foreach (var xmlDocFactory in _xmlDocFactories) { var xmlDoc = xmlDocFactory(); modelFilters.Insert(0, new ApplyXmlTypeComments(xmlDoc)); operationFilters.Insert(0, new ApplyXmlActionComments(xmlDoc)); } var options = new SwaggerGeneratorOptions( versionSupportResolver: _versionSupportResolver, schemes: _schemes, securityDefinitions: securityDefintitions, ignoreObsoleteActions: _ignoreObsoleteActions, groupingKeySelector: _groupingKeySelector, groupingKeyComparer: _groupingKeyComparer, customSchemaMappings: _customSchemaMappings, schemaFilters: _schemaFilters.Select(factory => factory()).ToList(), modelFilters: modelFilters, ignoreObsoleteProperties: _ignoreObsoleteProperties, schemaIdSelector: _schemaIdSelector, describeAllEnumsAsStrings: _describeAllEnumsAsStrings, describeStringEnumsInCamelCase: _describeStringEnumsInCamelCase, applyFiltersToAllSchemas: _applyFiltersToAllSchemas, operationFilters: operationFilters, documentFilters: _documentFilters.Select(factory => factory()).ToList(), conflictingActionsResolver: _conflictingActionsResolver ); var defaultProvider = new SwaggerGenerator( httpConfig.Services.GetApiExplorer(), httpConfig.SerializerSettingsOrDefault(), _versionInfoBuilder.Build(), options); return((_customProviderFactory != null) ? _customProviderFactory(defaultProvider) : defaultProvider); }
internal ISwaggerProvider GetSwaggerProvider(HttpRequestMessage swaggerRequest) { var httpConfig = swaggerRequest.GetConfiguration(); var securityDefintitions = _securitySchemeBuilders.Any() ? _securitySchemeBuilders.ToDictionary(kvp => kvp.Key, kvp => kvp.Value.Build()) : null; var security = new List <IDictionary <string, IEnumerable <string> > >(); foreach (var sec in _securityBuilders) { var tmpSec = new Dictionary <string, IEnumerable <string> > { { sec, new List <string>() { } } }; security.Add(tmpSec); } var options = new SwaggerGeneratorOptions( versionSupportResolver: _versionSupportResolver, schemes: _schemes, securityDefinitions: securityDefintitions, security: security, ignoreObsoleteActions: _ignoreObsoleteActions, groupingKeySelector: _groupingKeySelector, groupingKeyComparer: _groupingKeyComparer, customSchemaMappings: _customSchemaMappings, schemaFilters: _schemaFilters.Select(factory => factory()), modelFilters: _modelFilters.Select(factory => factory()), ignoreObsoleteProperties: _ignoreObsoleteProperties, schemaIdSelector: _schemaIdSelector, describeAllEnumsAsStrings: _describeAllEnumsAsStrings, describeStringEnumsInCamelCase: _describeStringEnumsInCamelCase, operationFilters: _operationFilters.Select(factory => factory()), documentFilters: _documentFilters.Select(factory => factory()), conflictingActionsResolver: _conflictingActionsResolver ); var defaultProvider = new SwaggerGenerator( httpConfig.Services.GetApiExplorer(), httpConfig.SerializerSettingsOrDefault(), _versionInfoBuilder.Build(), options); return((_customProviderFactory != null) ? _customProviderFactory(defaultProvider) : defaultProvider); }
internal ISwaggerProvider GetSwaggerProvider(HttpRequestMessage swaggerRequest) { var httpConfig = swaggerRequest.GetConfiguration(); var securityDefintitions = _securitySchemeBuilders.Any() ? _securitySchemeBuilders.ToDictionary(kvp => kvp.Key, kvp => kvp.Value.Build()) : null; foreach (var xmlDocFactory in _xmlDocFactories) { var xmlDoc = xmlDocFactory(); _operationFilters.Add(() => new ApplyXmlActionComments(xmlDoc)); _modelFilters.Add(() => new ApplyXmlTypeComments(xmlDoc)); } var options = new SwaggerGeneratorOptions( versionSupportResolver: _versionSupportResolver, schemes: _schemes, securityDefinitions: securityDefintitions, ignoreObsoleteActions: _ignoreObsoleteActions, groupingKeySelector: _groupingKeySelector, groupingKeyComparer: _groupingKeyComparer, customSchemaMappings: _customSchemaMappings, schemaFilters: _schemaFilters.Select(factory => factory()), modelFilters: _modelFilters.Select(factory => factory()), ignoreObsoleteProperties: _ignoreObsoleteProperties, schemaIdSelector: _schemaIdSelector, describeAllEnumsAsStrings: _describeAllEnumsAsStrings, describeStringEnumsInCamelCase: _describeStringEnumsInCamelCase, applyFiltersToAllSchemas: _applyFiltersToAllSchemas, operationFilters: _operationFilters.Select(factory => factory()), documentFilters: _documentFilters.Select(factory => factory()), conflictingActionsResolver: _conflictingActionsResolver ); var defaultProvider = new SwaggerGenerator( httpConfig.Services.GetApiExplorer(), httpConfig.SerializerSettingsOrDefault(), _versionInfoBuilder.Build(), options); return((_customProviderFactory != null) ? _customProviderFactory(defaultProvider) : defaultProvider); }