.NET Core 3.1使用Swagger
1. 安装Swashbuckle.AspNetCore
在VS打开 NuGet 下载安装 Swashbuckle.AspNetCore :工具 → NuGet包管理器 → 管理解决方案的NuGet程序包 → 输入Swashbuckle搜索 →点击下载
查看Swashbuckle.AspNetCore版本 :项目依赖项 →包 → Swashbuckle.AspNetCore版本
2. Startup类ConfigureServices注入Swagger服务
代码:
public void ConfigureServices(IServiceCollection services) { // 添加Swagger services.AddSwaggerGen(options => { options.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" }); // 获取xml文件名 var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; // 获取xml文件路径 var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile); // 添加控制器层注释,true表示显示控制器注释 options.IncludeXmlComments(xmlPath, true); }); }
3. Startup类ConfigureServices添加Swagger中间件
代码:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { // 添加Swagger有关中间件 app.UseSwagger(); app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "coreMVC3.1"); //c.RoutePrefix = string.Empty; c.RoutePrefix = "API"; //如果是为空 访问路径就为 根域名/index.html,注意localhost:端口号/swagger是访问不到的 //路径配置,设置为空,表示直接在根域名(localhost:8001)访问该文件 // c.RoutePrefix = "swagger"; // 如果你想换一个路径,直接写名字即可,比如直接写c.RoutePrefix = "swagger"; 则访问路径为 根域名/swagger/index.html }); }
5. 添加控制器
6. 生成XML文件:
项目右键,选择属性,生成,勾选“XML文档文件”,如下图所示(配置:本地(Debug),这个配置仅为本地调试)
仅仅这个配置在发布环境访问Swagger会报错,所以配置要选择Release也要配置生成XML文档文件
本地环境:
发布环境:
运行程序Swagger界面