pontuss 2020-05-08
在前后端分离开发中,配置Swagger 可以免写接口文档,大大减少工作量,Swagger 简洁高效,官网地址:https://swagger.io/,本篇博客介绍如何在.NET Core WebApi 中配置 Swagger
NuGet地址:https://www.nuget.org/packages
在NuGet中搜索 Swashbuckle.AspNetCore 找到 Swagger 包
在程序包管理器控制台中输入如下代码
Install-Package Swashbuckle.AspNetCore -Version 5.4.1
在依赖项中出现 Swashbuckle.AspNetCore 表示添加成功
public void ConfigureServices(IServiceCollection services) { // 注册Swagger服务 services.AddSwaggerGen(c => { // 添加文档信息 c.SwaggerDoc("v1", new Info { Title = "TestWebApi", Version = "v1", Description = "测试API", Contact = new Microsoft.OpenApi.Models.OpenApiContact { Name = "Kebele8", Email = "" } }); }); }
public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseHttpsRedirection(); // 启用Swagger中间件 app.UseSwagger(); // 配置SwaggerUI app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "TestWebApi"); c.RoutePrefix = string.Empty; //路由前缀设置为空 }); app.UseMvc(); }
启用XML注释之后可以轻松映射到UI界面方便前端开发人员理解
右键当前项目,编辑 .csproj 文件,在PropertyGroup标签组中添加如下代码:
<!--启用XML注释,并忽略未写注释的警告--> <GenerateDocumentationFile>true</GenerateDocumentationFile> <!--不添加1591如果某个方法未写 "///"各式的注释,会有警示的消息--> <NoWarn>$(NoWarn);1591</NoWarn>
services.AddSwaggerGen(c => { #region 读取xml信息 // 使用反射获取xml文件,并构造出文件的路径 var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile); // 启用xml注释,该方法第二个参数启用控制器的注释,默认为false. c.IncludeXmlComments(xmlPath, true); #endregion });
启动项目,显示效果如下
End!