Пример #1
0
        private SchemaRegistry Subject(Action <SchemaRegistrySettings> configure = null)
        {
            var settings = new SchemaRegistrySettings();

            if (configure != null)
            {
                configure(settings);
            }

            return(new SchemaRegistry(new JsonSerializerSettings(), settings));
        }
Пример #2
0
        public static void Init(TestContext testContext)
        {
            var knownTypesOptions = Options.Create(new DotvvmApiOptions());

            knownTypesOptions.Value.AddKnownType(typeof(Company <string>));

            var options = new SwaggerGeneratorSettings {
                DocInclusionPredicate = (version, api) => true,
                OperationFilters      =
                {
                    new RemoveReadOnlyFromUriParametersOperationFilter(),
                    new RemoveBindNoneFromUriParametersOperationFilter(),
                    new AddAsObjectOperationFilter(knownTypesOptions)
                },
                DocumentFilters =
                {
                    new HandleKnownTypesDocumentFilter(knownTypesOptions)
                },
                SwaggerDocs =
                {
                    { "v1", new Info()
                        {
                            Title = "Test API", Version = "v1"
                        } }
                }
            };

            var serviceCollection = new ServiceCollection()
                                    .AddSingleton <ObjectPoolProvider, DefaultObjectPoolProvider>()
                                    .AddSingleton <IHostingEnvironment, HostingEnvironment>()
                                    .AddLogging();

            serviceCollection.AddMvc(setup => setup.Conventions.Add(new ApiExplorerVisibilityEnabledConvention()))
            .AddApplicationPart(typeof(CompaniesController).Assembly);

            var serviceProvider = serviceCollection.BuildServiceProvider();
            var apiDescriptionGroupCollectionProvider = serviceProvider.GetService <IApiDescriptionGroupCollectionProvider>();

            var schemaSettings = new SchemaRegistrySettings()
            {
                SchemaFilters =
                {
                    new AddTypeToModelSchemaFilter()
                }
            };

            var schemaRegistryFactory = new SchemaRegistryFactory(new JsonSerializerSettings(), schemaSettings);
            var generator             = new SwaggerGenerator(apiDescriptionGroupCollectionProvider, schemaRegistryFactory, options);

            document = generator.GetSwagger("v1");
        }
Пример #3
0
        public SwaggerGenOptions()
        {
            _swaggerGeneratorSettings = new SwaggerGeneratorSettings();
            _schemaRegistrySettings   = new SchemaRegistrySettings();

            _xmlDocFactories            = new List <Func <XPathDocument> >();
            _operationFilterDescriptors = new List <FilterDescriptor <IOperationFilter> >();
            _documentFilterDescriptors  = new List <FilterDescriptor <IDocumentFilter> >();
            _schemaFilterDescriptors    = new List <FilterDescriptor <ISchemaFilter> >();

            // Enable Annotations
            OperationFilter <SwaggerAttributesOperationFilter>();
            SchemaFilter <SwaggerAttributesSchemaFilter>();
        }
Пример #4
0
        public SharpPlugSwaggerGenOptions()
        {
            SwaggerGeneratorSettings = new SwaggerGeneratorSettings();
            SchemaRegistrySettings   = new SchemaRegistrySettings();

            XmlDocFactories            = new List <Func <XPathDocument> >();
            OperationFilterDescriptors = new List <FilterDescriptor <IOperationFilter> >();
            DocumentFilterDescriptors  = new List <FilterDescriptor <IDocumentFilter> >();
            SchemaFilterDescriptors    = new List <FilterDescriptor <ISchemaFilter> >();

            // Enable Annotations
            //OperationFilter<SwaggerAttributesOperationFilter>();
            //OperationFilter<SwaggerResponseAttributeFilter>();
            //SchemaFilter<SwaggerAttributesSchemaFilter>();
        }
Пример #5
0
        public static SchemaRegistrySettings Clone(this SchemaRegistrySettings settings)
        {
            var s = new SchemaRegistrySettings
            {
                DescribeAllEnumsAsStrings      = settings.DescribeAllEnumsAsStrings,
                DescribeStringEnumsInCamelCase = settings.DescribeStringEnumsInCamelCase,
                IgnoreObsoleteProperties       = settings.IgnoreObsoleteProperties,
                SchemaIdSelector = settings.SchemaIdSelector,
            };

            foreach (var typeMap in settings.CustomTypeMappings)
            {
                s.CustomTypeMappings.Add(typeMap.Key, typeMap.Value);
            }
            foreach (var schemaFilter in settings.SchemaFilters)
            {
                s.SchemaFilters.Add(schemaFilter);
            }
            return(s);
        }