Esempio n. 1
0
        public static void Configure(SwaggerGenOptions swaggerOptions, string secretKey)
        {
            swaggerOptions.DescribeAllParametersInCamelCase();
            swaggerOptions.OrderActionsBy(x => x.RelativePath);

            swaggerOptions.AddSecurityDefinition("ApiKey", new OpenApiSecurityScheme
            {
                Description = "ApiKey needed to access the endpoints (eg: `Authorization: ApiKey xxx-xxx`)",
                In          = ParameterLocation.Header,
                Name        = "Authorization",
                Type        = SecuritySchemeType.ApiKey,
            });

            swaggerOptions.AddSecurityRequirement(new OpenApiSecurityRequirement
            {
                {
                    new OpenApiSecurityScheme
                    {
                        Name      = "ApiKey",
                        Type      = SecuritySchemeType.ApiKey,
                        In        = ParameterLocation.Header,
                        Reference = new OpenApiReference
                        {
                            Type = ReferenceType.SecurityScheme,
                            Id   = "ApiKey",
                        },
                    },
                    Array.Empty <string>()
                }
            });
        }
 private static void AddDefaultOptions(SwaggerGenOptions options, Assembly assembly)
 {
     options.IgnoreObsoleteActions();
     options.IgnoreObsoleteProperties();
     options.DescribeAllParametersInCamelCase();
     options.IncludeXmlCommentsIfExists(assembly);
 }
Esempio n. 3
0
        public SwaggerGenOptions CreateSwaggerGenOptions(SwaggerGenOptions c, Assembly entryAssembly)
        {
            c.SwaggerDoc("v1", new OpenApiInfo {
                Title = $"{entryAssembly.GetName().Name} Service Api", Version = "v1"
            });
            c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
            {
                Type = SecuritySchemeType.ApiKey,
                In   = ParameterLocation.Header,
                Name = "Authorization"
            });
            c.AddSecurityRequirement(new OpenApiSecurityRequirement
            {
                {
                    new OpenApiSecurityScheme
                    {
                        Reference = new OpenApiReference
                        {
                            Type = ReferenceType.SecurityScheme,
                            Id   = "Bearer"
                        },
                        Scheme = "Bearer",
                        Name   = "Bearer",
                        In     = ParameterLocation.Header
                    },
                    new List <string>()
                }
            });

            c.DescribeAllParametersInCamelCase();
            return(c);
        }
 private static void CustomSwaggerGenOptionsSetupAction(SwaggerGenOptions swaggerGenOptions)
 {
     swaggerGenOptions.SwaggerDoc(version, info);
     //swaggerGenOptions.IncludeXmlComments(xmlFilePath);
     swaggerGenOptions.DescribeAllParametersInCamelCase();
     swaggerGenOptions.AddFluentValidationRules();
     swaggerGenOptions.AddSecurityDefinition(JwtBearerDefaults.AuthenticationScheme, securityScheme);
     swaggerGenOptions.AddSecurityRequirement(securityRequirement);
 }
Esempio n. 5
0
            public void Configure(SwaggerGenOptions options)
            {
                foreach (var description in provider.ApiVersionDescriptions)
                {
                    options.SwaggerDoc(
                        description.GroupName,
                        new Info()
                    {
                        Title   = $"API {description.ApiVersion}",
                        Version = description.ApiVersion.ToString(),
                    });
                }

                options.DescribeAllParametersInCamelCase();
                options.IncludeXmlComments(Path.Combine(PlatformServices.Default.Application.ApplicationBasePath,
                                                        "Vshope.Web.xml"));
            }
        public static void Configure(SwaggerGenOptions swaggerOptions, string secretKey)
        {
            swaggerOptions.SwaggerDoc("v1", new OpenApiInfo
            {
                Title       = "Simple Api",
                Version     = "v1",
                Description = $"ApiKey {secretKey}",
                Contact     = new OpenApiContact
                {
                    Name = "Łukasz Kurzyniec",
                    Url  = new Uri("https://kurzynieswaggerOptions.pl/"),
                }
            });

            swaggerOptions.DescribeAllParametersInCamelCase();
            swaggerOptions.OrderActionsBy(x => x.RelativePath);

            swaggerOptions.AddSecurityDefinition("ApiKey", new OpenApiSecurityScheme
            {
                Description = "ApiKey needed to access the endpoints (eg: `Authorization: ApiKey xxx-xxx`)",
                In          = ParameterLocation.Header,
                Name        = "Authorization",
                Type        = SecuritySchemeType.ApiKey,
            });

            swaggerOptions.AddSecurityRequirement(new OpenApiSecurityRequirement
            {
                {
                    new OpenApiSecurityScheme
                    {
                        Name      = "ApiKey",
                        Type      = SecuritySchemeType.ApiKey,
                        In        = ParameterLocation.Header,
                        Reference = new OpenApiReference
                        {
                            Type = ReferenceType.SecurityScheme,
                            Id   = "ApiKey",
                        },
                    },
                    Array.Empty <string>()
                }
            });
        }
Esempio n. 7
0
        private static void AddBaseSwagger(this SwaggerGenOptions c, SwaggerOptions options)
        {
            c.SwaggerDoc(options.Name, new OpenApiInfo {
                Title = options.Title, Version = options.Version
            });
            if (options.IncludeSecurity)
            {
                c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
                {
                    Description =
                        "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
                    Name = "Authorization",
                    In   = ParameterLocation.Header,
                    Type = SecuritySchemeType.ApiKey
                });//Json Token认证方式,此方式为全局添加
                c.AddSecurityRequirement(new OpenApiSecurityRequirement
                {
                    {
                        new OpenApiSecurityScheme
                        {
                            Reference = new OpenApiReference()
                            {
                                Id   = "Bearer",
                                Type = ReferenceType.SecurityScheme
                            }
                        }, Array.Empty <string>()
                    }
                });
            }


            var xmlFiles = Directory.GetFiles(AppContext.BaseDirectory, "*.xml");

            for (int i = 0; i < xmlFiles.Length; i++)
            {
                c.IncludeXmlComments(xmlFiles[i]);
            }

            c.UseInlineDefinitionsForEnums();

            c.DescribeAllParametersInCamelCase();
        }
Esempio n. 8
0
        private void SetSwaggerConfiguration(SwaggerGenOptions config)
        {
            var doc = new OpenApiInfo
            {
                Title       = "PrivacyManager",
                Version     = "v1",
                Description = "PrivacyManager Api",
                Contact     = new OpenApiContact
                {
                    Name  = "Personalization Accounting and Provisioning Squad",
                    Email = "*****@*****.**",
                },
            };

            var xmlFilename         = $"{this.executingAssembly.GetName().Name}.xml";
            var xmlCommentsFilepath = Path.Combine(AppContext.BaseDirectory, xmlFilename);

            config.DescribeAllParametersInCamelCase();
            config.SwaggerDoc("v1", doc);
            config.IncludeXmlComments(xmlCommentsFilepath);
        }
        private static void SetupSwaggerGenOptions(SwaggerGenOptions options)
        {
            var assembly            = typeof(Startup).Assembly;
            var assemblyProduct     = assembly.GetCustomAttribute <AssemblyProductAttribute>()?.Product;
            var assemblyDescription = assembly.GetCustomAttribute <AssemblyDescriptionAttribute>()?.Description;

            options.DescribeAllParametersInCamelCase();
            options.MapType <DateTime>(() => new OpenApiSchema {
                Type = "string", Pattern = DateFormat.Pattern
            });

            options.SwaggerDoc(ApiVersions.V1, new OpenApiInfo
            {
                Version     = ApiVersions.V1,
                Title       = assemblyProduct,
                Description = assemblyDescription
            });

            foreach (var path in GetXmlPaths())
            {
                options.IncludeXmlComments(path);
            }
        }
        public static SwaggerGenOptions AddElectSwaggerGenOptions([NotNull] SwaggerGenOptions swaggerGenOptions, [NotNull] Action <ElectSwaggerOptions> configuration)
        {
            var options = configuration.GetValue();

            // Doc Info
            swaggerGenOptions.SwaggerDoc(options.Version, new Info
            {
                Title   = options.Title,
                Version = options.Version,
                Contact = !string.IsNullOrWhiteSpace(options.AuthorName) &&
                          !string.IsNullOrWhiteSpace(options.AuthorWebsite) &&
                          !string.IsNullOrWhiteSpace(options.AuthorEmail)
                    ? new Contact
                {
                    Name  = options.AuthorName,
                    Url   = options.AuthorWebsite,
                    Email = options.AuthorEmail
                }
                    : null
            });

            // XML
            IncludeXmlCommentsIfExists(swaggerGenOptions, Assembly.GetEntryAssembly());

            // Filers
            swaggerGenOptions.OperationFilter <ApiDocGroupOperationFilter>();

            swaggerGenOptions.OperationFilter <GlobalParameterOperationFilter>();

            swaggerGenOptions.OperationFilter <ParameterOperationFilter>();

            swaggerGenOptions.DocumentFilter <ShowHideInApiDocDocumentFilter>();

            swaggerGenOptions.IgnoreObsoleteProperties();

            swaggerGenOptions.IgnoreObsoleteActions();

            // Type / Properties
            if (options.IsFullSchemaForType)
            {
                swaggerGenOptions.CustomSchemaIds(type => type.FullName);
            }

            if (options.IsDescribeAllParametersInCamelCase)
            {
                swaggerGenOptions.DescribeAllParametersInCamelCase();
            }

            if (options.IsDescribeAllEnumsAsString)
            {
                swaggerGenOptions.DescribeAllEnumsAsStrings();

                if (options.IsDescribeAllParametersInCamelCase)
                {
                    swaggerGenOptions.DescribeStringEnumsInCamelCase();
                }
            }

            // Order
            swaggerGenOptions.OrderActionsBy(apiDesc => apiDesc.ActionDescriptor.DisplayName);

            return(swaggerGenOptions);
        }