public void Initialize(ExtensionConfigContext context) { context.AddBindingRule <SwashBuckleClientAttribute>() .Bind(new SwashBuckleClientBindingProvider(this)); var services = new ServiceCollection(); services.AddSingleton <IApiDescriptionGroupCollectionProvider>(_apiDescriptionGroupCollectionProvider); services.AddSwaggerGen(options => { if (_option.Documents.Length == 0) { var defaultDocument = new OptionDocument(); AddSwaggerDocument(options, defaultDocument); } else { foreach (var optionDocument in _option.Documents) { AddSwaggerDocument(options, optionDocument); } } options.DescribeAllEnumsAsStrings(); if (!string.IsNullOrWhiteSpace(_xmlPath)) { options.IncludeXmlComments(_xmlPath); } options.OperationFilter <FunctionsOperationFilter>(); options.OperationFilter <QueryStringParameterAttributeFilter>(); }); _serviceProvider = services.BuildServiceProvider(true); }
private static void AddSwaggerDocument(SwaggerGenOptions options, OptionDocument document) { options.SwaggerDoc(document.Name, new Info { Title = document.Title, Version = document.Version, Description = document.Description, }); }