コード例 #1
0
        public static async Task <IActionResult> Swagger(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)]
            HttpRequest req,
            ILogger log)
        {
            // swaggerUIの設定
            var settings = new AzureFunctionsV2ToSwaggerGeneratorSettings();

            settings.Title = "TestNSwag";
            var generator = new AzureFunctionsV2ToSwaggerGenerator(settings);

            // UIに表示したいクラスを記載する
            var funcClasses = new[]
            {
                typeof(TestNSwag),
            };
            var document = await generator.GenerateForAzureFunctionClassesAsync(funcClasses, null);

            // Workaround for NSwag global security bug, see https://github.com/RicoSuter/NSwag/pull/2305
            document.Security.Clear();

            var json = document.ToJson();

            return(new OkObjectResult(json));
        }
コード例 #2
0
        /// <summary>
        /// Initialize SwaggerGenerator configuration.
        /// Add OperationSecurityProcessors and SecurityDefinitionAppenders to the settings.
        /// </summary>
        static SwaggerConfiguration()
        {
            var settings = new AzureFunctionsV2ToSwaggerGeneratorSettings();

            SwaggerGeneratorSettings = settings;

            settings.Title       = "Azure Functions Swagger example";
            settings.Description =
                "This is an example generated Swagger JSON using NSwag.SwaggerGeneration.AzureFunctionsV2 and AzureFunctionsV2.HttpExtensions to " +
                "generate Swagger output directly from the assembly. <br/><br/>Credentials for testing:<br/><br/><b>OAuth2:</b> " +
                "\"[email protected]\" : \"foobar123---\", use client_id: \"XLjNBiBCx3_CZUAK3gagLSC_PPQjBDzB\"" +
                "<br/><b>Basic auth:</b> \"user\" : \"pass\" <br/> " +
                "<b>ApiKey:</b> \"key\".";

            settings.OperationProcessors.Add(new OperationSecurityProcessor("Basic",
                                                                            SwaggerSecuritySchemeType.Basic));
            settings.DocumentProcessors.Add(new SecurityDefinitionAppender("Basic", new SwaggerSecurityScheme()
            {
                Type        = SwaggerSecuritySchemeType.Basic,
                Scheme      = "Basic",
                Description = "Basic auth"
            }));

            settings.OperationProcessors.Add(new OperationSecurityProcessor("ApiKey",
                                                                            SwaggerSecuritySchemeType.ApiKey, SwaggerSecurityApiKeyLocation.Header));
            settings.DocumentProcessors.Add(new SecurityDefinitionAppender("ApiKey", new SwaggerSecurityScheme()
            {
                Type = SwaggerSecuritySchemeType.ApiKey,
                Name = "x-apikey",
                In   = SwaggerSecurityApiKeyLocation.Header
            }));

            settings.OperationProcessors.Add(new OperationSecurityProcessor("Bearer",
                                                                            SwaggerSecuritySchemeType.OpenIdConnect));
            settings.DocumentProcessors.Add(new SecurityDefinitionAppender("Bearer", new SwaggerSecurityScheme()
            {
                Type  = SwaggerSecuritySchemeType.OAuth2,
                Flow  = SwaggerOAuth2Flow.Implicit,
                Flows = new OpenApiOAuthFlows()
                {
                    Implicit = new OpenApiOAuthFlow()
                    {
                        AuthorizationUrl = "https://jusas-tests.eu.auth0.com/authorize",
                        Scopes           = new Dictionary <string, string>()
                        {
                            { "openid", "openid" }, { "profile", "profile" }, { "name", "name" }
                        },
                        TokenUrl = "https://jusas-tests.eu.auth0.com/oauth/token"
                    }
                },
                Description = "Token"
            }));
        }
コード例 #3
0
        public async Task Should_include_nonstatic_function_classes_and_methods()
        {
            // Arrange
            var settings  = new AzureFunctionsV2ToSwaggerGeneratorSettings();
            var generator = new AzureFunctionsV2ToSwaggerGenerator(settings);

            // Act
            var swaggerDoc = await generator.GenerateForAzureFunctionClassesAsync(
                new[] { typeof(NonStaticFunctionClass), typeof(IgnoredNonStaticFunctionClass) }, null);

            // Assert
            swaggerDoc.Operations.Count().Should().Be(1);
        }
        public async Task Should_ignore_OpenApiIgnore_attributed_function()
        {
            // Arrange
            var settings     = new AzureFunctionsV2ToSwaggerGeneratorSettings();
            var generator    = new AzureFunctionsV2ToSwaggerGenerator(settings);
            var functionName = nameof(GenerationAnnotationTests.SwaggerIgnoredFunction2);

            // Act
            var swaggerDoc = await generator.GenerateForAzureFunctionClassAndSpecificMethodsAsync(
                typeof(GenerationAnnotationTests), new List <string>() { functionName });

            // Assert
            swaggerDoc.Operations.Count().Should().Be(0);
        }
        public async Task Should_not_limit_to_HttpRequest_class_in_discovery()
        {
            // Arrange
            var settings     = new AzureFunctionsV2ToSwaggerGeneratorSettings();
            var generator    = new AzureFunctionsV2ToSwaggerGenerator(settings);
            var functionName = nameof(GenerationAnnotationTests.SwaggerFunctionWithNonHttpRequestParam);

            // Act
            var swaggerDoc = await generator.GenerateForAzureFunctionClassAndSpecificMethodsAsync(
                typeof(GenerationAnnotationTests), new List <string>() { functionName });

            // Assert
            swaggerDoc.Operations.Count().Should().Be(1);
        }
        public async Task Should_have_body_type_automatically_discovered_from_custom_post_request_body_type()
        {
            // Arrange
            var settings     = new AzureFunctionsV2ToSwaggerGeneratorSettings();
            var generator    = new AzureFunctionsV2ToSwaggerGenerator(settings);
            var functionName = nameof(GenerationAnnotationTests.SwaggerFunctionWithNonHttpRequestParam);

            // Act
            var swaggerDoc = await generator.GenerateForAzureFunctionClassAndSpecificMethodsAsync(
                typeof(GenerationAnnotationTests), new List <string>() { functionName });

            // Assert
            swaggerDoc.Operations.Count().Should().Be(1);
            swaggerDoc.Operations.First().Operation.RequestBody.Name.Should().Be("req");
        }
        public async Task Should_include_security_spec_in_SwaggerDocument_from_authorize_attribute_with_defaults()
        {
            // Arrange
            var settings = new AzureFunctionsV2ToSwaggerGeneratorSettings();

            settings.OperationProcessors.Add(new OperationSecurityProcessor("Basic", OpenApiSecuritySchemeType.Basic));
            var generator    = new AzureFunctionsV2ToSwaggerGenerator(settings);
            var functionName = nameof(GenerationAnnotationTests.SwaggerAuthorizeAttribute1);

            // Act
            var swaggerDoc = await generator.GenerateForAzureFunctionClassAndSpecificMethodsAsync(
                typeof(GenerationAnnotationTests), new List <string>() { functionName });

            // Assert
            Assert.Equal(1, swaggerDoc.Operations.First().Operation.ActualSecurity.Count);
        }
コード例 #8
0
        public static async Task <IActionResult> Swagger(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "swagger")]
            HttpRequest req,
            ILogger log)
        {
            var settings = new AzureFunctionsV2ToSwaggerGeneratorSettings()
            {
                Title       = "My Function App Swagger",
                Description = "Here be dragons!",
                Version     = "1.0"
            };
            var generator  = new AzureFunctionsV2ToSwaggerGenerator(settings);
            var swaggerDoc = await generator.GenerateForAzureFunctionClassAsync(typeof(ExampleFunctions));

            var json = swaggerDoc.ToJson();

            return(new OkObjectResult(json));
        }
        public async Task Should_include_security_spec_in_SwaggerDocument_from_authorize_attribute_with_scheme_apikey_in_query()
        {
            // Arrange
            var settings = new AzureFunctionsV2ToSwaggerGeneratorSettings();

            settings.OperationProcessors.Add(new OperationSecurityProcessor("QApiKey", OpenApiSecuritySchemeType.ApiKey, OpenApiSecurityApiKeyLocation.Query));
            var generator    = new AzureFunctionsV2ToSwaggerGenerator(settings);
            var functionName = nameof(GenerationAnnotationTests.SwaggerAuthorizeAttribute3);

            // Act
            var swaggerDoc = await generator.GenerateForAzureFunctionClassAndSpecificMethodsAsync(
                typeof(GenerationAnnotationTests), new List <string>() { functionName });

            // Assert
            var operation = swaggerDoc.Operations.First().Operation;

            Assert.Equal(1, operation.ActualSecurity.Count);
            operation.ActualSecurity.First().Should().ContainKey("QApiKey");
        }
コード例 #10
0
        public async Task Should_include_body_of_type_string_that_is_required()
        {
            // Arrange
            var settings     = new AzureFunctionsV2ToSwaggerGeneratorSettings();
            var generator    = new AzureFunctionsV2ToSwaggerGenerator(settings);
            var functionName = nameof(HttpExtensionTests.HttpExtensionsBody2);

            // Act
            var swaggerDoc = await generator.GenerateForAzureFunctionClassAndSpecificMethodsAsync(
                typeof(HttpExtensionTests), new List <string>() { functionName });

            // Assert
            var operation = swaggerDoc.Operations.First().Operation;

            operation.ActualParameters.Count.Should().Be(1);
            operation.ActualParameters[0].IsRequired.Should().Be(true);
            operation.ActualParameters[0].Kind.Should().Be(OpenApiParameterKind.Body);
            operation.ActualParameters[0].Schema.Type.Should().Be(JsonObjectType.String);
        }
コード例 #11
0
        public async Task Should_include_body_of_type_XmlDocument_and_consume_xml()
        {
            // Arrange
            var settings     = new AzureFunctionsV2ToSwaggerGeneratorSettings();
            var generator    = new AzureFunctionsV2ToSwaggerGenerator(settings);
            var functionName = nameof(HttpExtensionTests.HttpExtensionsBody4);

            // Act
            var swaggerDoc = await generator.GenerateForAzureFunctionClassAndSpecificMethodsAsync(
                typeof(HttpExtensionTests), new List <string>() { functionName });

            // Assert
            var operation = swaggerDoc.Operations.First().Operation;

            operation.ActualParameters.Count.Should().Be(1);
            operation.ActualParameters[0].Kind.Should().Be(OpenApiParameterKind.Body);
            operation.ActualParameters[0].Schema.Type.Should().Be(JsonObjectType.String);
            operation.ActualConsumes.Should().Contain("application/xml");
        }
コード例 #12
0
        public async Task Should_include_form_field_of_type_Dog_that_is_required()
        {
            // Arrange
            var settings     = new AzureFunctionsV2ToSwaggerGeneratorSettings();
            var generator    = new AzureFunctionsV2ToSwaggerGenerator(settings);
            var functionName = nameof(HttpExtensionTests.HttpExtensionsForm2);

            // Act
            var swaggerDoc = await generator.GenerateForAzureFunctionClassAndSpecificMethodsAsync(
                typeof(HttpExtensionTests), new List <string>() { functionName });

            // Assert
            var operation = swaggerDoc.Operations.First().Operation;

            operation.ActualParameters.Count.Should().Be(1);
            operation.ActualParameters[0].IsRequired.Should().Be(true);
            operation.ActualParameters[0].Kind.Should().Be(OpenApiParameterKind.FormData);
            operation.ActualParameters[0].ActualSchema.Should().Be(swaggerDoc.Definitions["Dog"]);
        }
        public async Task Should_include_required_formdata_field_with_type_string()
        {
            // Arrange
            var settings     = new AzureFunctionsV2ToSwaggerGeneratorSettings();
            var generator    = new AzureFunctionsV2ToSwaggerGenerator(settings);
            var functionName = nameof(GenerationAnnotationTests.SwaggerFormDataAttribute1);

            // Act
            var swaggerDoc = await generator.GenerateForAzureFunctionClassAndSpecificMethodsAsync(
                typeof(GenerationAnnotationTests), new List <string>() { functionName });

            // Assert
            var operation = swaggerDoc.Operations.First().Operation;

            operation.ActualParameters.Count.Should().Be(1);
            operation.ActualParameters[0].Description.Should().Be("description");
            operation.ActualParameters[0].Name.Should().Be("formField1");
            operation.ActualParameters[0].IsRequired.Should().Be(true);
            operation.ActualParameters[0].Type.Should().Be(NJsonSchema.JsonObjectType.String);
        }
コード例 #14
0
        public async Task Should_create_authorized_operation_from_HttpAuthorizeAttribute_inheriting_attributed_function()
        {
            // Arrange
            var settings = new AzureFunctionsV2ToSwaggerGeneratorSettings();

            settings.OperationProcessors.Add(new OperationSecurityProcessor("Bearer", OpenApiSecuritySchemeType.OAuth2));
            var generator    = new AzureFunctionsV2ToSwaggerGenerator(settings);
            var functionName = nameof(HttpExtensionTests.HttpExtensionsJwtAuth2);

            // Act
            var swaggerDoc = await generator.GenerateForAzureFunctionClassAndSpecificMethodsAsync(
                typeof(HttpExtensionTests), new List <string>() { functionName });

            // Assert
            var operation = swaggerDoc.Operations.First().Operation;

            operation.ActualParameters.Count.Should().Be(0); // HttpUser is not a HttpParam
            operation.Security.Count.Should().Be(1);
            operation.Security.First().Keys.Count.Should().Be(1);
        }
        public async Task Should_include_header_of_type_string_that_is_not_required()
        {
            // Arrange
            var settings     = new AzureFunctionsV2ToSwaggerGeneratorSettings();
            var generator    = new AzureFunctionsV2ToSwaggerGenerator(settings);
            var functionName = nameof(GenerationAnnotationTests.SwaggerRequestHeaderAttribute1);

            // Act
            var swaggerDoc = await generator.GenerateForAzureFunctionClassAndSpecificMethodsAsync(
                typeof(GenerationAnnotationTests), new List <string>() { functionName });

            // Assert
            var operation = swaggerDoc.Operations.First().Operation;

            operation.ActualParameters.Count.Should().Be(1);
            operation.ActualParameters[0].Description.Should().Be("description");
            operation.ActualParameters[0].Name.Should().Be("x-header");
            operation.ActualParameters[0].IsRequired.Should().Be(false);
            operation.ActualParameters[0].Kind.Should().Be(OpenApiParameterKind.Header);
            operation.ActualParameters[0].Type.Should().Be(JsonObjectType.String);
        }
        public async Task Should_include_query_param_with_int_Type_not_required()
        {
            // Arrange
            var settings     = new AzureFunctionsV2ToSwaggerGeneratorSettings();
            var generator    = new AzureFunctionsV2ToSwaggerGenerator(settings);
            var functionName = nameof(GenerationAnnotationTests.SwaggerQueryParamAttribute2);

            // Act
            var swaggerDoc = await generator.GenerateForAzureFunctionClassAndSpecificMethodsAsync(
                typeof(GenerationAnnotationTests), new List <string>() { functionName });

            // Assert
            var operation = swaggerDoc.Operations.First().Operation;

            operation.ActualParameters.Count.Should().Be(1);
            operation.ActualParameters[0].Description.Should().Be("Yet another description");
            operation.ActualParameters[0].Name.Should().Be("queryParam");
            operation.ActualParameters[0].IsRequired.Should().Be(false);
            operation.ActualParameters[0].Kind.Should().Be(OpenApiParameterKind.Query);
            operation.ActualParameters[0].Type.Should().Be(NJsonSchema.JsonObjectType.Integer);
        }
コード例 #17
0
        public async Task Should_include_queryparam_of_type_Dog_that_is_not_required()
        {
            // Arrange
            var settings     = new AzureFunctionsV2ToSwaggerGeneratorSettings();
            var generator    = new AzureFunctionsV2ToSwaggerGenerator(settings);
            var functionName = nameof(HttpExtensionTests.HttpExtensionsQueryParams3);

            // Act
            var swaggerDoc = await generator.GenerateForAzureFunctionClassAndSpecificMethodsAsync(
                typeof(HttpExtensionTests), new List <string>() { functionName });

            // Assert
            var operation = swaggerDoc.Operations.First().Operation;

            operation.ActualParameters.Count.Should().Be(1);
            operation.ActualParameters[0].Name.Should().Be("queryParam");
            operation.ActualParameters[0].IsRequired.Should().Be(false);
            operation.ActualParameters[0].Kind.Should().Be(OpenApiParameterKind.Query);
            operation.ActualParameters[0].Type.Should().Be(JsonObjectType.Object);
            operation.ActualParameters[0].ActualSchema.Should().Be(swaggerDoc.Definitions["Dog"]);
        }
        public async Task Should_include_body_of_type_Person_that_is_required()
        {
            // Arrange
            var settings     = new AzureFunctionsV2ToSwaggerGeneratorSettings();
            var generator    = new AzureFunctionsV2ToSwaggerGenerator(settings);
            var functionName = nameof(GenerationAnnotationTests.SwaggerRequestBodyTypeAttribute1);

            // Act
            var swaggerDoc = await generator.GenerateForAzureFunctionClassAndSpecificMethodsAsync(
                typeof(GenerationAnnotationTests), new List <string>() { functionName });

            // Assert
            var operation = swaggerDoc.Operations.First().Operation;

            operation.ActualParameters.Count.Should().Be(1);
            operation.ActualParameters[0].Description.Should().Be("description");
            operation.ActualParameters[0].Name.Should().Be("Body");
            operation.ActualParameters[0].IsRequired.Should().Be(true);
            operation.ActualParameters[0].Kind.Should().Be(OpenApiParameterKind.Body);
            operation.ActualParameters[0].ActualSchema.Type.Should().Be(JsonObjectType.Object);
            operation.ActualParameters[0].ActualSchema.Should().Be(swaggerDoc.Definitions["Person"]);
        }
コード例 #19
0
        public async Task Should_include_two_route_params_from_function_signature()
        {
            // Arrange
            var settings     = new AzureFunctionsV2ToSwaggerGeneratorSettings();
            var generator    = new AzureFunctionsV2ToSwaggerGenerator(settings);
            var functionName = nameof(HttpExtensionsTestApp.RouteParamTests.RouteParamTest);

            // Act
            var swaggerDoc = await generator.GenerateForAzureFunctionClassAndSpecificMethodsAsync(
                typeof(HttpExtensionsTestApp.RouteParamTests), new List <string>() { functionName });

            // Assert
            var operation = swaggerDoc.Operations.First().Operation;

            operation.ActualParameters.Count.Should().Be(2);
            operation.ActualParameters[0].Kind.Should().Be(OpenApiParameterKind.Path);
            operation.ActualParameters[1].Kind.Should().Be(OpenApiParameterKind.Path);
            operation.ActualParameters[0].IsRequired.Should().Be(true);
            operation.ActualParameters[1].IsRequired.Should().Be(true);
            operation.ActualParameters[0].Type.Should().Be(JsonObjectType.Integer);
            operation.ActualParameters[1].Type.Should().Be(JsonObjectType.String);
        }
        public async Task Should_include_formdatafile_field_with_multifile()
        {
            // Arrange
            var settings     = new AzureFunctionsV2ToSwaggerGeneratorSettings();
            var generator    = new AzureFunctionsV2ToSwaggerGenerator(settings);
            var functionName = nameof(GenerationAnnotationTests.SwaggerFormDataFileAttribute2);

            // Act
            var swaggerDoc = await generator.GenerateForAzureFunctionClassAndSpecificMethodsAsync(
                typeof(GenerationAnnotationTests), new List <string>() { functionName });

            // Assert
            var operation = swaggerDoc.Operations.First().Operation;

            operation.ActualParameters.Count.Should().Be(1);
            operation.ActualParameters[0].Description.Should().Be("description");
            operation.ActualParameters[0].Name.Should().Be("files");
            operation.ActualParameters[0].IsRequired.Should().Be(false);
            operation.ActualParameters[0].Kind.Should().Be(OpenApiParameterKind.FormData);
            operation.ActualParameters[0].Type.Should().Be(NJsonSchema.JsonObjectType.File);
            operation.ActualParameters[0].CollectionFormat.Should().Be(OpenApiParameterCollectionFormat.Multi);
        }
コード例 #21
0
        /// <summary>
        /// Initialize SwaggerGenerator configuration.
        /// Add OperationSecurityProcessors and SecurityDefinitionAppenders to the settings.
        /// </summary>
        static SwaggerConfiguration()
        {
            var settings = new AzureFunctionsV2ToSwaggerGeneratorSettings();

            SwaggerGeneratorSettings = settings;

            settings.Title       = "Azure Functions Swagger example";
            settings.Description =
                "This is an example generated Swagger JSON using NSwag.SwaggerGeneration.AzureFunctionsV2 and AzureFunctionsV2.HttpExtensions to " +
                "generate Swagger output directly from the assembly. <br/>Mostly the methods do nothing.<br/><br/>Credentials for testing:<br/><br/><b>OAuth2:</b> " +
                "\"[email protected]\" : \"foobar123---\", use client_id: \"XLjNBiBCx3_CZUAK3gagLSC_PPQjBDzB\"" +
                "<br/><b>Basic auth:</b> \"user\" : \"pass\" <br/> " +
                "<b>ApiKey:</b> \"key\".";

            //settings.RoutePrefix = "";
            settings.OperationProcessors.Add(new OperationSecurityProcessor("Bearer",
                                                                            OpenApiSecuritySchemeType.OpenIdConnect));
            var scopes = new List <string>()
            {
                "openid", "profile", "name"
            };

            settings.DocumentProcessors.Add(new SecurityDefinitionAppender("Bearer", scopes, new OpenApiSecurityScheme()
            {
                Type             = OpenApiSecuritySchemeType.OAuth2,
                Flow             = OpenApiOAuth2Flow.Implicit,
                AuthorizationUrl = "https://jusas-tests.eu.auth0.com/authorize",
                Scopes           = scopes.ToDictionary(x => x, x => x),
                TokenUrl         = "https://jusas-tests.eu.auth0.com/oauth/token",
                Description      = "Token"
            }));

            // The SecurityDefinitionAppender constructor is not actually obsolete, see
            // https://github.com/RicoSuter/NSwag/pull/2305

            settings.OperationProcessors.Add(new OperationSecurityProcessor("Basic",
                                                                            OpenApiSecuritySchemeType.Basic));
            settings.DocumentProcessors.Add(new SecurityDefinitionAppender("Basic", new OpenApiSecurityScheme()
            {
                Type        = OpenApiSecuritySchemeType.Basic,
                Scheme      = "Basic",
                Description = "Basic auth"
            }));

            settings.OperationProcessors.Add(new OperationSecurityProcessor("HApiKey",
                                                                            OpenApiSecuritySchemeType.ApiKey, OpenApiSecurityApiKeyLocation.Header));
            settings.DocumentProcessors.Add(new SecurityDefinitionAppender("HApiKey", new OpenApiSecurityScheme()
            {
                Type = OpenApiSecuritySchemeType.ApiKey,
                Name = "x-apikey",
                In   = OpenApiSecurityApiKeyLocation.Header
            }));

            settings.OperationProcessors.Add(new OperationSecurityProcessor("QApiKey",
                                                                            OpenApiSecuritySchemeType.ApiKey, OpenApiSecurityApiKeyLocation.Query));
            settings.DocumentProcessors.Add(new SecurityDefinitionAppender("QApiKey", new OpenApiSecurityScheme()
            {
                Type = OpenApiSecuritySchemeType.ApiKey,
                Name = "apikey",
                In   = OpenApiSecurityApiKeyLocation.Query
            }));
        }
コード例 #22
0
 public OperationResponseProcessor(AzureFunctionsV2ToSwaggerGeneratorSettings settings)
     : base(settings)
 {
 }
コード例 #23
0
 public OperationParameterProcessor(AzureFunctionsV2ToSwaggerGeneratorSettings settings)
 {
     _settings = settings;
 }
コード例 #24
0
ファイル: SwaggerConfiguration.cs プロジェクト: Jusas/sd2
        /// <summary>
        /// Initialize SwaggerGenerator configuration.
        /// Add OperationSecurityProcessors and SecurityDefinitionAppenders to the settings.
        /// </summary>
        static SwaggerConfiguration()
        {
            var settings = new AzureFunctionsV2ToSwaggerGeneratorSettings();

            SwaggerGeneratorSettings    = settings;
            settings.SerializerSettings = new JsonSerializerSettings()
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            };
            //settings.SchemaType = SchemaType.OpenApi3; // Consumes multipart/form-data does not work with this

            settings.Title       = "SD2 Replays API";
            settings.Description =
                "SD2 Replays API";

            //settings.OperationProcessors.Add(new OperationSecurityProcessor("Bearer",
            //    SwaggerSecuritySchemeType.OpenIdConnect));
            //settings.DocumentProcessors.Add(new SecurityDefinitionAppender("Bearer", new SwaggerSecurityScheme()
            //{
            //    Type = SwaggerSecuritySchemeType.OAuth2,
            //    Flow = SwaggerOAuth2Flow.Implicit,
            //    Flows = new OpenApiOAuthFlows()
            //    {
            //        Implicit = new OpenApiOAuthFlow()
            //        {
            //            AuthorizationUrl = "https://jusas-tests.eu.auth0.com/authorize",
            //            Scopes = new Dictionary<string, string>()
            //                    {{"openid", "openid"}, {"profile", "profile"}, {"name", "name"}},
            //            TokenUrl = "https://jusas-tests.eu.auth0.com/oauth/token"
            //        }
            //    },
            //    Description = "Token"
            //}));

            settings.OperationProcessors.Add(new OperationSecurityProcessor("Basic",
                                                                            SwaggerSecuritySchemeType.Basic));
            settings.DocumentProcessors.Add(new SecurityDefinitionAppender("Basic", new SwaggerSecurityScheme()
            {
                Type        = SwaggerSecuritySchemeType.Basic,
                Scheme      = "Basic",
                Description = "Basic auth"
            }));

            //settings.OperationProcessors.Add(new OperationSecurityProcessor("HApiKey",
            //    SwaggerSecuritySchemeType.ApiKey, SwaggerSecurityApiKeyLocation.Header));
            //settings.DocumentProcessors.Add(new SecurityDefinitionAppender("HApiKey", new SwaggerSecurityScheme()
            //{
            //    Type = SwaggerSecuritySchemeType.ApiKey,
            //    Name = "x-apikey",
            //    In = SwaggerSecurityApiKeyLocation.Header
            //}));

            //settings.OperationProcessors.Add(new OperationSecurityProcessor("QApiKey",
            //    SwaggerSecuritySchemeType.ApiKey, SwaggerSecurityApiKeyLocation.Query));
            //settings.DocumentProcessors.Add(new SecurityDefinitionAppender("QApiKey", new SwaggerSecurityScheme()
            //{
            //    Type = SwaggerSecuritySchemeType.ApiKey,
            //    Name = "apikey",
            //    In = SwaggerSecurityApiKeyLocation.Query
            //}));
        }