当前位置:   article > 正文

Knife4UI替换丑陋的SwaggerUI

knife4ui

新建 ASP.NET Core Web API 项目

新建项目

勾选配置项

勾选配置项

引入NuGet包(两种方式)

使用NuGet包管理器

IGeekFan.AspNetCore.Knife4jUI
Swashbuckle.AspNetCore.Swagger
Swashbuckle.AspNetCore.SwaggerGen

编辑项目文件

<PackageReference Include="IGeekFan.AspNetCore.Knife4jUI" Version="0.0.11" />
<PackageReference Include="Swashbuckle.AspNetCore.Swagger" Version="6.3.1" />
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerGen" Version="6.3.1" />
  • 1
  • 2
  • 3

更新 Program.cs 文件

注入 swagger

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;
    });
    c.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, "SwaggerDemo.xml"), true);
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

配置中间件

// 将 UseSwaggerUI 替换成 UseKnife4UI
app.UseKnife4UI(c =>
{
    c.RoutePrefix = string.Empty; // serve the UI at root
    c.SwaggerEndpoint("/v1/api-docs", "V1 Docs");
});

app.UseRouting(); // 路由中间件一定要添加

app.UseAuthorization();

app.UseEndpoints(endpoints =>
{
    endpoints.MapControllers();
    endpoints.MapSwagger("{documentName}/api-docs");
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

启用生成API文档

启动生成API文档,否则启动会报错:“找不到xxx.xml文件”

如下图所示
在这里插入图片描述

“SwaggerDemo.xml” 文件名称与代码中保持一致

效果

更改 Properties 文件夹下的 launchSettings.json 文件中的
launchUrl 节点 将 swagger 替换为 index.html#/home
启动时便可以直接打开文档啦

效果
效果

效果

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/93479
推荐阅读
相关标签
  

闽ICP备14008679号