private SchemaRegistry Subject(Action <SchemaRegistryOptions> setupAction = null)
        {
            var options = new SchemaRegistryOptions();

            if (setupAction != null)
            {
                setupAction(options);
            }

            return(new SchemaRegistry(new JsonSerializerSettings(), options));
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="SchemaRegistryFactory"/> class.
        /// </summary>
        /// <param name="mvcJsonOptionsAccessor"><see cref="IOptions{T}">Options</see> for <see cref="MvcJsonOptions"/>.</param>
        /// <param name="schemaRegistryOptionsAccessor"><see cref="IOptions{T}">Options</see> for <see cref="SchemaRegistryOptions"/>.</param>
        /// <param name="schemaProviders"><see cref="IInstancesOf{T}"/> of <see cref="ICanProvideSwaggerSchemas"/>.</param>
        public SchemaRegistryFactory(
            IOptions <MvcJsonOptions> mvcJsonOptionsAccessor,
            IOptions <SchemaRegistryOptions> schemaRegistryOptionsAccessor,
            IInstancesOf <ICanProvideSwaggerSchemas> schemaProviders)
        {
            _jsonSerializerSettings = mvcJsonOptionsAccessor.Value.SerializerSettings;
            _schemaRegistryOptions  = schemaRegistryOptionsAccessor.Value;
            _schemaProviders        = schemaProviders;

            _originalFactory = new OriginalSchemaRegistryFactory(_jsonSerializerSettings, _schemaRegistryOptions);
        }
Exemple #3
0
 public AsyncApiSchemaRegistry(
     JsonSerializerSettings jsonSerializerSettings,
     SchemaRegistryOptions options = null)
 {
     this._jsonSerializerSettings = jsonSerializerSettings;
     this._jsonContractResolver   = this._jsonSerializerSettings.ContractResolver ??
                                    (IContractResolver) new DefaultContractResolver();
     this._options         = options ?? new SchemaRegistryOptions();
     this._schemaIdManager = new SchemaIdManager(this._options.SchemaIdSelector);
     this.Definitions      = (IDictionary <string, Schema>) new Dictionary <string, Schema>();
 }
Exemple #4
0
        public static void Init(TestContext testContext)
        {
            var knownTypesOptions = Options.Create(new DotvvmApiOptions());

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

            var options = new SwaggerGeneratorOptions
            {
                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>()
                                    .AddSingleton <DiagnosticSource>(p => new DiagnosticListener("test"))
                                    .AddLogging();

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

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

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

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

            document = generator.GetSwagger("v1");
        }
Exemple #5
0
        public SwaggerGenOptions()
        {
            _swaggerProviderOptions = new SwaggerProviderOptions();
            _schemaRegistryOptions  = new SchemaRegistryOptions();

            _operationFilterDescriptors = new List <FilterDescriptor <IOperationFilter> >();
            _documentFilterDescriptors  = new List <FilterDescriptor <IDocumentFilter> >();
            _modelFilterDescriptors     = new List <FilterDescriptor <IModelFilter> >();

            // Enable Annotations
            OperationFilter <SwaggerAttributesOperationFilter>();
            ModelFilter <SwaggerAttributesModelFilter>();
        }