示例#1
0
        public static void ConfigureSwaggerGen(SwaggerGenOptions swaggerGenOptions)
        {
            swaggerGenOptions.SwaggerDoc("v1", new Info
            {
                Title       = "SSL Central",
                Version     = $"v1",
                Description = "An API for centralized SSL management with Lets Encrypt."
            });

            swaggerGenOptions.AddSecurityDefinition("Bearer", new ApiKeyScheme
            {
                Description = "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
                Name        = "Authorization",
                In          = "header",
                Type        = "apiKey"
            });

            var basePath = AppContext.BaseDirectory;

            swaggerGenOptions.DescribeAllEnumsAsStrings();
            string filePath = Path.Combine(basePath, "SSLCentral.API.xml");

            swaggerGenOptions.IncludeXmlComments(filePath);
            filePath = Path.Combine(basePath, "SSLCentral.Models.xml");
            swaggerGenOptions.IncludeXmlComments(filePath);
        }
示例#2
0
        public static void AddDefaultOptions(this SwaggerGenOptions options)
        {
            options.DescribeAllEnumsAsStrings();

            options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
            {
                Description = "Авторизация с помощью JWT токена.  <b>Пример: Bearer -token-</b>",
                Name        = "Authorization",
                In          = ParameterLocation.Header,
                Type        = SecuritySchemeType.ApiKey
            });

            var security = new OpenApiSecurityRequirement()
            {
                {
                    new OpenApiSecurityScheme
                    {
                        Reference = new OpenApiReference
                        {
                            Type = ReferenceType.SecurityScheme,
                            Id   = "Bearer"
                        },
                        Scheme = "oauth2",
                        Name   = "Bearer",
                        In     = ParameterLocation.Header,
                    },
                    new List <string>()
                }
            };

            options.AddSecurityRequirement(security);
        }
示例#3
0
        /// <summary>
        /// Configure swagger generator options
        /// </summary>
#pragma warning disable CA1822 // Mark members as static
        public void ConfigureSwaggerGenOptions(SwaggerGenOptions options)
#pragma warning restore CA1822 // Mark members as static
        {
#pragma warning disable SA1122 // Use string.Empty for empty strings
            var info = new Info()
            {
                Version     = "0.1.0",
                Title       = "Meetup Management Service API",
                Description = "Meetup Management Service API (ASP.NET Core 2.2)",
                Contact     = new Contact()
                {
                    Name  = "DotNetRu Server Contributors",
                    Url   = "https://github.com/DotNetRu/Server",
                    Email = ""
                },
                TermsOfService = ""
            };
#pragma warning restore SA1122 // Use string.Empty for empty strings
            options.SwaggerDoc("0.1.0", info);
            options.CustomSchemaIds(type => type.FriendlyId(true));
            options.DescribeAllEnumsAsStrings();

            // Include DataAnnotation attributes on Controller Action parameters as Swagger validation rules (e.g required, pattern, ..)
            // Use [ValidateModelState] on Actions to actually validate it in C# as well!
            options.OperationFilter <GeneratePathParamsValidationFilter>();
        }
示例#4
0
        private void SetupSwagger(SwaggerGenOptions options, string apiName, IHostingEnvironment hostingEnv)
        {
            options.SwaggerDoc("v1", new Info
            {
                Title       = apiName,
                Description = $"{apiName} (ASP.NET Core 2.2)",
                Version     = "1.0.BUILD_NUMBER"
            });

            options.DescribeAllEnumsAsStrings();

            var comments =
                new XPathDocument($"{AppContext.BaseDirectory}{Path.DirectorySeparatorChar}{hostingEnv.ApplicationName}.xml");

            options.OperationFilter <XmlCommentsOperationFilter>(comments);

            //options.AddSecurityDefinition("Bearer", new ApiKeyScheme()
            //{
            // Description = "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
            // Name = "Authorization",
            // In = "header",
            // Type = "apiKey"
            //});

            options.IgnoreObsoleteActions();
        }
示例#5
0
        /// <summary>
        ///     SwaggerGen
        /// </summary>
        /// <param name="options"></param>
        private void SwaggerGen(SwaggerGenOptions options)
        {
            _versions.ForEach(version => options.SwaggerDoc(version,
                                                            new Info {
                Title = "Mervi", Version = $"v{version}"
            }));

            //Determine base path for the application.
            var basePath     = AppContext.BaseDirectory;
            var assemblyName = System.Reflection.Assembly.GetEntryAssembly().GetName().Name;
            var fileName     = System.IO.Path.GetFileName(assemblyName + ".xml");
            var xmlPath      = System.IO.Path.Combine(basePath, fileName);

            //Set the comments path for the Swagger JSON and UI.
            options.IncludeXmlComments(xmlPath);
            options.DescribeAllEnumsAsStrings();
            options.DocInclusionPredicate(HasVersion);

            //Setear configuracion para no harcodear el false
            options.OperationFilter <AddAuthorizationHeader>(false);
            options.OperationFilter <AddApiVersionHeader>(_versions.Last());
            options.OperationFilter <AddUnprocessibleEntityResponseType>();
            options.OperationFilter <AddInternalServerErrorResponseType>();
            options.OperationFilter <RemoveExtraneousContentTypes>();
            options.OrderActionsBy(x => $"{x.RelativePath} {x.HttpMethod}");
        }
示例#6
0
        public static void Configure(SwaggerGenOptions options)
        {
            options.SwaggerDoc(SwaggerConstants.InvestorsGroup, new Info {
                Title = SwaggerConstants.InvestorsTitle, Version = "1.0"
            });
            options.SwaggerDoc(SwaggerConstants.AdministratorsGroup, new Info {
                Title = SwaggerConstants.AdministratorsTitle, Version = "1.0"
            });
            options.SwaggerDoc(SwaggerConstants.AnalyticsGroup, new Info {
                Title = SwaggerConstants.AnalyticsTitle, Version = "1.0"
            });

            options.DescribeAllEnumsAsStrings();
            options.OperationFilter <SwaggerExamplesDocumentFilter>();
            options.DocumentFilter <SwaggerDescriptionDocumentFilter>("InvestorApi.Swagger.Documentation.md");

            options.IncludeXmlComments(AppContext.BaseDirectory + "InvestorApi.xml");
            options.IncludeXmlComments(AppContext.BaseDirectory + "InvestorApi.Contracts.xml");

            options.AddSecurityDefinition("Bearer", new ApiKeyScheme()
            {
                Description = "Enter: Bearer {token}",
                Name        = "Authorization",
                In          = "header",
                Type        = "apiKey"
            });
        }
        protected override void Configuration(SwaggerGenOptions options)
        {
            var xmlPath = Path.Combine(PlatformServices.Default.Application.ApplicationBasePath, PlatformServices.Default.Application.ApplicationName + ".xml");

            if (File.Exists(xmlPath))
            {
                options.IncludeXmlComments(xmlPath);
            }
            options.DescribeAllEnumsAsStrings();
            options.OperationFilter <AddFileUploadParams>();
            options.DocumentFilter <EndPointPathsAndParamsToLower>();
            options.DocumentFilter <SetVersionInPaths>();
            options.SchemaFilter <PagedResultSchemaFilter>();
        }
示例#8
0
        /// <summary>
        /// Setups swagger
        /// </summary>
        /// <param name="swaggerOptions"></param>
        /// <param name="apiVersion">Api version. e.g: "v1"</param>
        /// <param name="apiTitle">Api title</param>
        public static void DefaultLykkeConfiguration(this SwaggerGenOptions swaggerOptions, string apiVersion, string apiTitle)
        {
            swaggerOptions.SwaggerDoc(
                $"{apiVersion}",
                new OpenApiInfo
            {
                Version = apiVersion,
                Title   = apiTitle
            });

            swaggerOptions.DescribeAllEnumsAsStrings();
            swaggerOptions.EnableXmsEnumExtension();
            swaggerOptions.EnableXmlDocumentation();
            swaggerOptions.MakeResponseValueTypesRequired();
        }
        internal static void ConfigureSwaggerGen(SwaggerGenOptions options)
        {
            AddSwaggerDocPerVersion(options);
            ApplyDocInclusions(options);
            AddSecurityDefinition(options);

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

            foreach (var xmlFile in xmlFiles)
            {
                options.IncludeXmlComments(xmlFile);
            }

            options.DescribeAllEnumsAsStrings();
            options.OperationFilter <FormatXmlCommentProperties>();
        }
示例#10
0
        internal static void ConfigureSwaggerGen(SwaggerGenOptions swaggerGenOptions)
        {
            var webApiAssembly = Assembly.GetEntryAssembly();

            AddSwaggerDocPerVersion(swaggerGenOptions, webApiAssembly);
            ApplyDocInclusions(swaggerGenOptions);

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

            foreach (var xmlFile in xmlFiles)
            {
                swaggerGenOptions.IncludeXmlComments(xmlFile);
            }

            swaggerGenOptions.DescribeAllEnumsAsStrings();
            swaggerGenOptions.OperationFilter <FormatXmlCommentProperties>();
        }
示例#11
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="swaggerGenOptions"></param>
 protected virtual void ConfigureSwagger(SwaggerGenOptions swaggerGenOptions)
 {
     swaggerGenOptions.SwaggerDoc(Constants.ApiVersions.V1, new Info
     {
         Version        = Constants.Swagger.ApiVersions.V1.Version,
         Title          = Constants.Swagger.ApiVersions.V1.Title,
         Description    = Constants.Swagger.ApiVersions.V1.Description,
         TermsOfService = Constants.Swagger.ApiVersions.V1.TermsOfService,
         Contact        = new Contact()
         {
             Name = Constants.Swagger.Contact.Name, Email = Constants.Swagger.Contact.Email, Url = Constants.Swagger.Contact.Url
         }
     });
     swaggerGenOptions.CustomSchemaIds(x => x.FullName);
     swaggerGenOptions.IncludeXmlComments(GetXmlCommentsPath());
     swaggerGenOptions.DescribeAllEnumsAsStrings();
     swaggerGenOptions.OperationFilter <MultipleOperationsWithSameVerbFilter>();
 }
示例#12
0
        public static void ConfigureSwaggerGen(SwaggerGenOptions swaggerGenOptions)
        {
            var webApiAssembly = Assembly.GetEntryAssembly();

            AddSwaggerDocPerVersion(swaggerGenOptions, webApiAssembly);
            ApplyDocInclusions(swaggerGenOptions);

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

            foreach (var xmlFile in xmlFiles)
            {
                swaggerGenOptions.IncludeXmlComments(xmlFile);
            }

            swaggerGenOptions.DescribeAllEnumsAsStrings();
            swaggerGenOptions.OperationFilter <FormatXmlCommentProperties>();
            swaggerGenOptions.OperationFilter <AuthorizationInputOperationFilter>();            // Adds an Authorization input box to every endpoint
            swaggerGenOptions.OperationFilter <AppendAuthorizeToSummaryOperationFilter>();      // Adds "(Auth)" to the summary so that you can see which endpoints have Authorization
        }
示例#13
0
        private void SetupSwagger(SwaggerGenOptions options, string apiName, IHostingEnvironment hostingEnv)
        {
            options.SwaggerDoc("v1", new Info
            {
                Title       = apiName,
                Description = $"{apiName} (ASP.NET Core 2.2)",
                Version     = "1.0.BUILD_NUMBER"
            });

            options.DescribeAllEnumsAsStrings();

            var comments =
                new XPathDocument($"{AppContext.BaseDirectory}{Path.DirectorySeparatorChar}{hostingEnv.ApplicationName}.xml");

            options.OperationFilter <XmlCommentsOperationFilter>(comments);


            options.IgnoreObsoleteActions();
        }
示例#14
0
        private static void SetupGenOptions(SwaggerGenOptions options)
        {
            options.SwaggerDoc("v1", new Info {
                Version = "v1",
                Title   = "Base64 Diff API",
                Contact = new Contact {
                    Name  = "Caliel Costa",
                    Url   = "https://github.com/calielc/Base64Diff",
                    Email = "*****@*****.**"
                }
            });

            foreach (var xml in new[] { "Caliel.Base64Diff.Api.xml", "Caliel.Base64Diff.Domain.xml" })
            {
                options.IncludeXmlComments(Path.Combine(PlatformServices.Default.Application.ApplicationBasePath, xml));
            }

            options.IgnoreObsoleteProperties();
            options.IgnoreObsoleteActions();
            options.DescribeAllEnumsAsStrings();
        }
示例#15
0
        /// <summary>
        ///     Configure generation of swagger documentation.
        /// </summary>
        /// <param name="swaggerGenOptions">Swagger code generation options.</param>
        public static void ConfigureSwaggerGen(SwaggerGenOptions swaggerGenOptions)
        {
            Assembly webApiAssembly = Assembly.GetEntryAssembly();

            AddSwaggerDocPerVersion(swaggerGenOptions, webApiAssembly);
            ApplyDocInclusions(swaggerGenOptions);
            IncludeXmlComments(swaggerGenOptions, webApiAssembly);

            swaggerGenOptions.AddSecurityDefinition(
                "Bearer",
                new ApiKeyScheme
            {
                Description = "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
                Name        = "Authorization",
                In          = "header",
                Type        = "apiKey"
            });

            swaggerGenOptions.IgnoreObsoleteActions();
            swaggerGenOptions.DescribeAllEnumsAsStrings();
        }
示例#16
0
        private static void SetupAction(SwaggerGenOptions options, string authorizationUrl)
        {
            options.SwaggerDoc(GetVersion(), new Info
            {
                Title       = "CoreDocker API",
                Description = "Contains CoreDocker api descriptions."
            });
            options.DescribeAllEnumsAsStrings();
            var scopeApi = IocApi.Instance.Resolve <OpenIdSettings>().ScopeApi;

            options.AddSecurityDefinition("oauth2", new OAuth2Scheme
            {
                Type             = "oauth2",
                Flow             = "password",
                TokenUrl         = authorizationUrl.UriCombine("connect/token"),
                AuthorizationUrl = authorizationUrl,

                Scopes = new Dictionary <string, string>
                {
                    { scopeApi.UnderScoreAndCamelCaseToHumanReadable(), scopeApi }
                }
            });
        }
示例#17
0
        /// <summary>
        /// Método que faz a configuração para do Swagger.
        /// </summary>
        /// <param name="options">Objeto que contém as configurações para o Swagger.</param>
        /// <param name="configuration"></param>
        public static void ConfigureSwaggerGenOptions(this SwaggerGenOptions options, IConfiguration configuration)
        {
            options.SwaggerDoc("v1", new Info()
            {
                Title = $"API Fonética Líder DPVAT - { configuration.GetSection("AmbienteConfiguration:Nome").Value }",
                //Version = System.Reflection.Assembly.GetEntryAssembly().GetName().Version.ToString(),
                Version = configuration.GetSection("Versao").Value,
                Description = "API que controlará o Fonetica.",
                Contact = new Contact()
                {
                    Name = "Seguradora Líder DPVAT",
                    Url = "https://www.seguradoralider.com.br"
                }
            });

            options.AddSecurityDefinition("Bearer", new ApiKeyScheme
            {
                Description = "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
                Name = "Authorization",
                In = "header",
                Type = "apiKey"
            });
            options.DescribeAllEnumsAsStrings();
            options.OperationFilter<AddFileParamTypesOperationFilter>();
            options.AddSecurityRequirement(new Dictionary<string, IEnumerable<string>> {
                { "Bearer", Enumerable.Empty<string>() },
                });

            string caminhoAplicacao = PlatformServices.Default.Application.ApplicationBasePath;
            string nomeAplicacao = PlatformServices.Default.Application.ApplicationName;
            string caminhoXmlDoc = Path.Combine(caminhoAplicacao, $"{nomeAplicacao}.xml");
            options.IncludeXmlComments(caminhoXmlDoc);

            options.IgnoreObsoleteActions();
            options.IgnoreObsoleteProperties();
        }
        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);
        }
 protected override void Configuration(SwaggerGenOptions options)
 {
     options.DescribeAllEnumsAsStrings();
 }