网站首页 > 博客文章 正文
一、什么是 Knife4j?
Knife4j 是一个基于 Swagger 的 API 文档增强工具,它在原生的 Swagger UI 基础上提供了更美观的界面和更多实用功能,如:
- o 接口分组展示
- o 接口排序
- o 离线文档导出
- o 接口调试支持
- o 更友好的中文界面支持
IGeekFan.AspNetCore.Knife4jUI 是为 ASP.NET Core 平台封装的 Knife4j UI 组件包,可以轻松替代默认的 Swagger UI 页面。
二、安装 Knife4jUI
1. 安装 NuGet 包
需要安装 Swashbuckle.AspNetCore 来生成 Swagger JSON
dotnet add package IGeekFan.AspNetCore.Knife4jUI
dotnet add package Swashbuckle.AspNetCore
三、配置 Knife4jUI
1. 注册服务(Program.cs)
在 Program.cs 中注册 Knife4j 和 Swagger 服务:
var builder = WebApplication.CreateBuilder(args);
// 添加 Swagger 服务 Knife4j UI
builder.Services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "API V1", Version = "v1" });
c.AddServer(new OpenApiServer()
{
Url = "",
Description = "vvv"
});
c.CustomOperationIds(apiDesc =>
{
var controllerAction = apiDesc.ActionDescriptor as ControllerActionDescriptor;
return controllerAction.ControllerName + "-" + controllerAction.ActionName;
});
});
var app = builder.Build();
// 启用中间件
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
//app.UseSwaggerUI();
app.UseKnife4UI(c =>
{
c.RoutePrefix = ""; // serve the UI at root
c.SwaggerEndpoint("/swagger/v1/swagger.json", "V1 Docs");
});
}
app.MapControllers();
app.Run();
注意:如果你之前用了 UseSwaggerUI(),请替换为 UseKnife4jUI()。
四、启用 XML 注释(可选)
为了让 Knife4j 显示接口注释信息,你需要启用 XML 注释。
1. 修改项目文件.csproj
打开你的 .csproj 文件,添加以下内容:
<PropertyGroup>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<NoWarn>$(NoWarn);1591</NoWarn>
</PropertyGroup>
2. 配置 Swagger 注释路径(Program.cs)
builder.Services.AddSwaggerGen(options =>
{
var xmlFilename = #34;{Assembly.GetExecutingAssembly().GetName().Name}.xml";
options.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFilename));
});
确保控制器和方法都加上了 XML 注释:
/// <summary>
/// 天气服务
/// </summary>
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
private static readonly string[] Summaries = new[]
{
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};
/// <summary>
/// 测试服务
/// </summary>
/// <returns></returns>
[HttpGet(Name = "GetWeatherForecast")]
public IEnumerable<WeatherForecast> Get()
{
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
TemperatureC = Random.Shared.Next(-20, 55),
Summary = Summaries[Random.Shared.Next(Summaries.Length)]
})
.ToArray();
}
}
五、访问 Knife4j UI 界面
启动项目后,在浏览器中访问:
http://localhost:<port>/knife4j
你将看到 Knife4j 提供的增强版 API 文档界面。
猜你喜欢
- 2025-05-26 就用它了!Gateway网关下的Swagger/OpenAPI3文档聚合
- 2025-05-26 使用Swager API Docs和easy-mock生成模拟数据
- 2025-05-26 使用 Swagger 中间件实现 API 文档自动生成
- 2025-05-26 手把手搭建koa2后端服务器-API文档生成(番外)
- 2025-05-26 后端团队用Swagger生成API文档,却漏了这行注解让参数传不进去
- 2025-05-26 /null/swagger-resources/死循环,升级swagger2.0到3.0踩坑记录
- 2025-05-26 前端同事老是说swagger不好用,我用了knife4j后,同事爽得不行
- 2025-05-26 SpringBoot 在生产快速禁用Swagger2
- 2025-05-26 了解Swagger规范检查点
- 2025-05-26 swagger-editor编写好api文档在哪用?这个工具你也得了解
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)