diff --git a/src/WMS.Web.Api/Startup.cs b/src/WMS.Web.Api/Startup.cs index ef5523ae..0d1b7ae4 100644 --- a/src/WMS.Web.Api/Startup.cs +++ b/src/WMS.Web.Api/Startup.cs @@ -9,10 +9,12 @@ using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Http; using Microsoft.Extensions.Logging; +using Microsoft.OpenApi.Models; using Swashbuckle.AspNetCore.SwaggerUI; using System; using System.Collections.Generic; using System.IdentityModel.Tokens.Jwt; +using System.IO; using System.Linq; using System.Threading.Tasks; using WMS.Web.Domain.Options; @@ -46,6 +48,48 @@ namespace WMS.Web.Api builder.AddDbContext( opt => { opt.UseMySql(option.DBConnectionString, serverVersion); }); }); + if (WebHostEnvironment.IsDevelopment()) + { + // 注册Swagger服务 + services.AddSwaggerGen(c => + { + // 添加文档信息 + c.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo + { + Title = "WMS", + Version = "v1", + Description = "WMS-Api" + }); + #region 读取xml信息 + // 使用反射获取xml文件。并构造出文件的路径 + //// 启用xml注释. 该方法第二个参数启用控制器的注释,默认为false. + foreach (var file in Directory.GetFiles(AppContext.BaseDirectory, "WMS.*.xml")) c.IncludeXmlComments(file, true); + #endregion + + #region 启用swagger验证功能 + //添加一个必须的全局安全信息,和AddSecurityDefinition方法指定的方案名称一致即可,CoreAPI。 + var securit = new OpenApiSecurityRequirement() + { + { + new OpenApiSecurityScheme + { + Reference=new OpenApiReference { Type=ReferenceType.SecurityScheme,Id= "WMSAPI" } + }, + new string[] { } + } + }; + c.AddSecurityRequirement(securit); + c.AddSecurityDefinition("WMSAPI", new OpenApiSecurityScheme + { + Description = "JWT授权(数据将在请求头中进行传输) 在下方输入Bearer {token} 即可", + Name = "Authorization",//jwt默认的参数名称 + In = ParameterLocation.Header,//jwt默认存放Authorization信息的位置(请求头中) + Type = SecuritySchemeType.ApiKey + }); + #endregion + + }); + } services.AddControllers(); //移除:http请求的默认日志处理器(备注:也可以实现它,自定义自己想要的日志,文档地址https://docs.microsoft.com/zh-cn/dotnet/core/compatibility/aspnet-core/5.0/http-httpclient-instances-log-integer-status-codes) services.RemoveAll(); diff --git a/src/WMS.Web.Repositories/DependencyInjection/AppBuilder.cs b/src/WMS.Web.Repositories/DependencyInjection/AppBuilder.cs index b1c9c937..0cb6e997 100644 --- a/src/WMS.Web.Repositories/DependencyInjection/AppBuilder.cs +++ b/src/WMS.Web.Repositories/DependencyInjection/AppBuilder.cs @@ -51,7 +51,7 @@ namespace WMS.Web.Repositories.DependencyInjection { this.AddCors(); this.InitRedis(); - this.AddSwagger(); + //this.AddSwagger(); this.AddOther(); this.AddConfigOptions(); this.AddServiceRepositories(); @@ -131,7 +131,7 @@ namespace WMS.Web.Repositories.DependencyInjection #region 璇诲彇xml淇℃伅 // 浣跨敤鍙嶅皠鑾峰彇xml鏂囦欢銆傚苟鏋勯犲嚭鏂囦欢鐨勮矾寰 //// 鍚敤xml娉ㄩ噴. 璇ユ柟娉曠浜屼釜鍙傛暟鍚敤鎺у埗鍣ㄧ殑娉ㄩ噴锛岄粯璁や负false. - foreach (var file in Directory.GetFiles(AppContext.BaseDirectory, "WMS.Web.*.xml")) c.IncludeXmlComments(file, true); + foreach (var file in Directory.GetFiles(AppContext.BaseDirectory, "WMS.*.xml")) c.IncludeXmlComments(file, true); #endregion #region 鍚敤swagger楠岃瘉鍔熻兘