Пример #1
0
 /// <summary>
 /// 启用Swagger
 /// </summary>
 /// <param name="app"></param>
 /// <param name="swaggerSetting"></param>
 public static void UseSwaggerDocument(this IApplicationBuilder app, SwaggerSetting swaggerSetting)
 {
     app.UseSwagger();
     app.UseSwaggerUI(c =>
     {
         foreach (var doc in swaggerSetting.SwaggerGroups)
         {
             c.SwaggerEndpoint($"/swagger/{doc.Name}/swagger.json", doc.Description);
         }
     });
 }
Пример #2
0
        /// <summary>
        /// 添加Swagger
        /// </summary>
        /// <param name="services"></param>
        /// <param name="swaggerSetting"></param>
        public static void AddSwaggerDocument(this IServiceCollection services, SwaggerSetting swaggerSetting)
        {
            services.AddSwaggerGen(c =>
            {
                foreach (var doc in swaggerSetting.SwaggerGroups)
                {
                    c.SwaggerDoc(doc.Name, new OpenApiInfo()
                    {
                        Version     = doc.Version,
                        Title       = doc.Title,
                        Description = doc.Description,
                    });
                }

                c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme()
                {
                    Description = swaggerSetting.TokenDescription ?? "Authorization format : Bearer {token}",
                    Name        = swaggerSetting.TokenName ?? "Authorization",
                    In          = ParameterLocation.Header,
                    Type        = SecuritySchemeType.ApiKey,
                    Scheme      = "Bearer"
                });
                c.AddSecurityRequirement(new OpenApiSecurityRequirement
                {
                    {
                        new OpenApiSecurityScheme
                        {
                            Reference = new OpenApiReference {
                                Type = ReferenceType.SecurityScheme,
                                Id   = "Bearer"
                            }
                        },
                        new string[] { }
                    }
                });
                var basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location);
                if (!string.IsNullOrEmpty(swaggerSetting.ApiXmlName))
                {
                    var apiXmlPath = Path.Combine(basePath, swaggerSetting.ApiXmlName);
                    c.IncludeXmlComments(apiXmlPath);
                }


                if (!string.IsNullOrEmpty(swaggerSetting.EntityXmlName))
                {
                    var entityXmlPath = Path.Combine(basePath, swaggerSetting.EntityXmlName);
                    c.IncludeXmlComments(entityXmlPath);
                }
            });
        }