本文共 6743 字,大约阅读时间需要 22 分钟。
1.通过nuget安装swagger
2.startup.cs 中的ConfigureServices中添加 c.SwaggerDoc
c.SwaggerDoc("v1",
new OpenApiInfo { Title = "xxx平台", Version = "v1", Contact = new OpenApiContact { Email = "xxx@xxx.com", Name = "xxx", Url = new Uri("http://www.xxx.com") } });c.SwaggerDoc("v2",
new OpenApiInfo { Title = "xxx平台2", Version = "v2", Contact = new OpenApiContact { Email = "xxx@xxx.com", Name = "xxx", Url = new Uri("http://www.xxx.com") } });public void ConfigureServices(IServiceCollection services) { // 首先取出appsettings中的连接字符串,注意参数名应与appsettings中键一致 var connectionString = AppSettingsHelper.Configuration["DBConnStr:MySQL:ConnectionString"]; // 类型是生成的上下文类名 services.AddDbContext(options => options.UseMySql(connectionString)); services.AddScoped (); // services.AddScoped (); //services.AddControllers().AddNewtonsoftJson(option => // //忽略循环引用 // option.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore //); services.AddControllers(); services.AddMvc().AddJsonOptions(o => { o.JsonSerializerOptions.ReferenceHandler = ReferenceHandler.Preserve; o.JsonSerializerOptions.MaxDepth = 0; }); services.AddCors(m => m.AddPolicy(Any, a => a.SetIsOriginAllowed(_ => true).AllowAnyMethod().AllowAnyHeader().AllowCredentials())); //注册swagger服务 services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "xxx平台", Version = "v1", Contact = new OpenApiContact { Email = "xxx@xxx.com", Name = "xxx", Url = new Uri("http://www.xxx.com") } }); c.SwaggerDoc("v2", new OpenApiInfo { Title = "xxx平台2", Version = "v2", Contact = new OpenApiContact { Email = "xxx@xxx.com", Name = "xxx", Url = new Uri("http://www.xxx.com") } }); // 为 Swagger 设置xml文档注释路径 var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile); c.IncludeXmlComments(xmlPath); c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme { Description = "请输入OAuth接口返回的Token,前置Bearer。示例:Bearer {Roken}", Name = "Authorization", In = ParameterLocation.Header,//jwt默认存放Authorization信息的位置(请求头中) Type = SecuritySchemeType.ApiKey }); c.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference() { Id = "Bearer", Type = ReferenceType.SecurityScheme } }, Array.Empty () } }); }); }
3.startup.cs中Configure中添加
c.SwaggerEndpoint("/swagger/v1/swagger.json", "WLCloudAPI");
c.SwaggerEndpoint("/swagger/v2/swagger.json", "WLCloudAPI2");public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseHttpsRedirection(); // app.UseMvc(); app.UseRouting(); //允许跨域 位置和必须放对,否则加载出错 app.UseCors(Any); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); //可以将Swagger的UI页面配置在Configure的开发环境之中 app.UseSwagger(); //和Swagger UI app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "WLCloudAPI"); c.SwaggerEndpoint("/swagger/v2/swagger.json", "WLCloudAPI2"); c.RoutePrefix = string.Empty; }); }
4.在controller中增加 [ApiExplorerSettings(GroupName ="v1")]即可分组
[ApiController] [ApiExplorerSettings(GroupName ="v1")] [EnableCors("Any")] [Route("api/[controller]")] public class testController : Controller { private readonly ITestRepository _testRepository; // 注入ComponanyRepository,就可以直接在控制器中使用其方法了 public testController(ITestRepository testRepository) { //var sh = new SHA1Managed(); //byte[] data = sh.ComputeHash(Encoding.Unicode.GetBytes("easyboot")) // return Convert.ToBase64String(data, Base64FormattingOptions.None); _testRepository = testRepository; } [HttpGet] public async Task> Get1() { return await _testRepository.GetTest(); } } [ApiController] [ApiExplorerSettings(GroupName = "v2")] [EnableCors("Any")] [Route("api/[controller]")] public class RedisController : Controller { // private readonly IRedis _IRedis; // 注入ComponanyRepository,就可以直接在控制器中使用其方法了 //public RedisController(IRedis Redis) //{ // // _IRedis = Redis; //} [HttpGet] public Dictionary Get(string key) { //var csredis = new CSRedis.CSRedisClient("127.0.0.1:6379,defaultDatabase=0");//,prefix = my_ //string s = csredis.Get(key); //object o = WLCloudAPI.util.RedisHelper.csredis.Get
4 可以看到版本选择
转载地址:http://mmumf.baihongyu.com/