.NET Swagger配置

本文介绍了如何通过Nuget包Swashbuckle在项目中集成Swagger,实现API文档的自动化生成。安装完成后,只需运行应用,即可通过http://localhost:44343/swagger访问Swagger UI。该工具有助于开发者便捷地测试和文档化API。

先nuget 包

 搜索 Swashbuckle 安装   

成功后会多一个  这个是自动的    SwaggerConfig.cs   表示成功

安装成功后  直接运行就可以了

访问方式:http://localhost:44343/swagger

### 如何在 .NET Core 中配置 Swagger.NET Core 项目中,Swagger 是一种非常流行的工具,用于生成和展示 API 文档。以下是关于如何在 .NET Core 中配置 Swagger 的详细说明。 #### 添加依赖项 首先需要安装 `Swashbuckle.AspNetCore` NuGet 包来支持 Swagger 功能。可以通过以下命令完成安装: ```bash dotnet add package Swashbuckle.AspNetCore ``` #### 配置 Swagger 在项目的 `Program.cs` 文件中,通过 `builder.Services` 和 `app.UseSwagger()` 方法实现 Swagger 的初始化与中间件注册。 ##### 示例代码 下面是一个完整的配置示例,展示了如何设置基本的 Swagger UI 并启用 XML 注释文件的支持[^3]。 ```csharp var builder = WebApplication.CreateBuilder(args); // 添加 Swagger 服务 builder.Services.AddSwaggerGen(option => { // 设置文档基本信息 option.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo { Title = "My API", Version = "v1" }); // 启用 XML 注释文件 string basePath = AppContext.BaseDirectory; string xmlPath = Path.Combine(basePath, $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"); option.IncludeXmlComments(xmlPath); }); var app = builder.Build(); if (app.Environment.IsDevelopment()) { // 使用 Swagger 中间件 app.UseSwagger(); app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API v1")); } app.Run(); ``` 上述代码实现了以下几个功能: - 定义了一个名为 `"v1"` 的 Swagger 文档版本。 - 加载当前程序集对应的 XML 注释文件以增强 API 描述信息。 - 只有当环境变量为开发模式 (`IsDevelopment`) 时才启动 Swagger UI。 #### 基于命名空间分组显示 如果希望按照控制器所在的命名空间对 API 进行分组,则可以扩展 `AddSwaggerGen` 的选项配置如下所示[^1]: ```csharp builder.Services.AddSwaggerGen(option => { option.DocInclusionPredicate((docName, apiDesc) => { var controllerNamespace = apiDesc.ActionDescriptor.RouteValues["controller"]; return docName.Equals(controllerNamespace.Replace(".", "_"), StringComparison.OrdinalIgnoreCase); }); foreach (var group in controllers.SelectMany(c => c.Namespaces).Distinct()) { option.SwaggerDoc(group.Replace(".", "_"), new OpenApiInfo { Title = group, Version = "v1" }); } }); ``` 这段逻辑会根据每个控制器所属的具体命名空间动态创建多个独立的 Swagger 文档节点。 #### 发布环境下禁用 Swagger 出于安全考虑,在生产环境中应避免暴露敏感接口的信息。因此可以在发布阶段移除或屏蔽掉 Swagger 组件的功能[^2]。 修改条件判断部分即可达成目标: ```csharp if (!app.Environment.IsProduction()) { app.UseSwagger(); app.UseSwaggerUI(...); } ``` 这样仅限非正式运行状态下的调试人员可见到相关界面链接入口。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值