/// <summary>Initializes a new instance of the <see cref="OperationResponseProcessorBase"/> class.</summary>
 /// <param name="settings">The settings.</param>
 public OperationResponseProcessorBase(OpenApiDocumentGeneratorSettings settings)
 {
     _settings = settings;
 }
        public static void AddSquidexOpenApiSettings(this IServiceCollection services)
        {
            services.AddSingletonAs <ErrorDtoProcessor>()
            .As <IDocumentProcessor>();

            services.AddSingletonAs <RuleActionProcessor>()
            .As <IDocumentProcessor>();

            services.AddSingletonAs <CommonProcessor>()
            .As <IDocumentProcessor>();

            services.AddSingletonAs <XmlTagProcessor>()
            .As <IDocumentProcessor>();

            services.AddSingletonAs <SecurityProcessor>()
            .As <IDocumentProcessor>();

            services.AddSingletonAs <ScopesProcessor>()
            .As <IOperationProcessor>();

            services.AddSingletonAs <FixProcessor>()
            .As <IOperationProcessor>();

            services.AddSingletonAs <TagByGroupNameProcessor>()
            .As <IOperationProcessor>();

            services.AddSingletonAs <XmlResponseTypesProcessor>()
            .As <IOperationProcessor>();

            services.AddSingletonAs <JsonSchemaGenerator>()
            .AsSelf();

            services.AddSingletonAs <OpenApiSchemaGenerator>()
            .AsSelf();

            services.AddSingleton(c =>
            {
                var settings = new JsonSchemaGeneratorSettings
                {
                    SerializerSettings = c.GetRequiredService <JsonSerializerSettings>()
                };

                ConfigureSchemaSettings(settings, true);

                return(settings);
            });

            services.AddSingleton(c =>
            {
                var settings = new OpenApiDocumentGeneratorSettings
                {
                    SerializerSettings = c.GetRequiredService <JsonSerializerSettings>()
                };

                ConfigureSchemaSettings(settings, true);

                foreach (var processor in c.GetRequiredService <IEnumerable <IDocumentProcessor> >())
                {
                    settings.DocumentProcessors.Add(processor);
                }

                return(settings);
            });

            services.AddOpenApiDocument(settings =>
            {
                settings.Title = "Squidex API";

                ConfigureSchemaSettings(settings);

                settings.OperationProcessors.Add(new QueryParamsProcessor("/apps/{app}/assets"));
            });
        }
Beispiel #3
0
 /// <summary>Appends the OAuth2 security scheme and requirement to the document's security definitions.</summary>
 /// <remarks>Adds a <see cref="SecurityDefinitionAppender"/> document processor with the given arguments.</remarks>
 /// <param name="settings">The settings.</param>
 /// <param name="name">The name/key of the security scheme/definition.</param>
 /// <param name="scopeNames">The scope names to add to as security requirement with the scheme name in the 'security' property (can be an empty list).</param>
 /// <param name="swaggerSecurityScheme">The Swagger security scheme.</param>
 public static OpenApiDocumentGeneratorSettings AddSecurity(this OpenApiDocumentGeneratorSettings settings, string name, IEnumerable <string> scopeNames, OpenApiSecurityScheme swaggerSecurityScheme)
 {
     settings.DocumentProcessors.Add(new SecurityDefinitionAppender(name, scopeNames, swaggerSecurityScheme));
     return(settings);
 }