.NET Framework 4.8独立WebAPI项目Swagger文档生成咨询
为.NET Framework 4.8独立WebAPI项目生成Swagger文档(控制台启动场景)
步骤1:给独立WebAPI项目安装依赖并配置Swagger生成规则
- 在WebAPI项目中安装以下NuGet包:
Swashbuckle.AspNetCore.SwaggerGen、Swashbuckle.AspNetCore.Swagger、Swashbuckle.AspNetCore.SwaggerUI - 打开WebAPI项目属性,勾选生成XML文档文件,将输出路径设为项目默认输出目录,并把该XML文件的“复制到输出目录”属性设为“如果较新则复制”。
- 添加Swagger配置类(也可直接在控制台启动项中配置):
using Microsoft.OpenApi.Models; using Swashbuckle.AspNetCore.SwaggerGen; using System.Reflection; public static class SwaggerSetup { public static void ConfigureSwaggerGen(SwaggerGenOptions options) { options.SwaggerDoc("v1", new OpenApiInfo { Title = "你的WebAPI服务", Version = "v1", Description = ".NET Framework 4.8 WebAPI接口文档" }); // 加载XML注释文件 var xmlFileName = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; var xmlFilePath = Path.Combine(AppContext.BaseDirectory, xmlFileName); options.IncludeXmlComments(xmlFilePath, true); // true表示包含控制器注释 } }
步骤2:在控制台启动项目中集成Swagger中间件
- 控制台项目需要安装OWIN及Swagger相关包:
Microsoft.Owin.Hosting、Microsoft.Owin.Cors、Swashbuckle.AspNetCore.SwaggerUI - 新建或修改OWIN启动类
Startup.cs,配置WebAPI和Swagger:
using Microsoft.Owin; using Owin; using Swashbuckle.AspNetCore.Swagger; using System.Web.Http; using System.IO; using System.Reflection; [assembly: OwinStartup(typeof(ConsoleHost.Startup))] namespace ConsoleHost { public class Startup { public void Configuration(IAppBuilder app) { var apiConfig = new HttpConfiguration(); // 导入WebAPI项目的路由配置 WebApiConfig.Register(apiConfig); // 配置Swagger apiConfig.EnableSwagger(c => { c.SingleApiVersion("v1", "你的WebAPI服务"); // 指定WebAPI项目的XML注释文件路径(控制台输出目录下的对应文件) var xmlPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "YourApiProjectName.xml"); if (File.Exists(xmlPath)) { c.IncludeXmlComments(xmlPath); } }) .EnableSwaggerUi(c => { // 设置SwaggerUI访问路径,默认是/swagger c.RoutePrefix = "swagger"; }); // 启用CORS和WebAPI app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll); app.UseWebApi(apiConfig); } } }
步骤3:启动验证
- 启动控制台程序,访问
http://localhost:你的服务端口/swagger,即可查看生成的Swagger文档并测试接口。
注意事项
- 确保WebAPI项目的DLL和XML文件被复制到控制台项目的输出目录,可通过添加项目引用或手动复制实现。
- 如果遇到XML文件找不到的问题,先检查控制台输出目录是否存在对应文件,或临时改用绝对路径调试。
内容的提问来源于stack exchange,提问作者AnthonyDa
相关产品推荐
相关产品推荐

