NetCore 配置Swagger
1.添加Nugetinstall-package Swashbuckle.AspNetCore -project XXX -version 6.4.02.添加静态类扩展方法
2.1.生成项目xml:选中项目 / 右键 / 属性 / 生成 / 输出 / 选中xml文档文件
2.2.system_v1:必须唯一不重复,且【options.SwaggerDoc("system_v1"】必须与【options.SwaggerEndpoint("/swagger/system_v1/】一致,不然会异常【Failed to load API definition; Fetch error: response status is 404 /swagger/system_v1/swagger.json】
1 /// <summary>
2 /// Swagger 静态类
3 /// </summary>
4 public static class SwaggerExtend
5 {
6 /// <summary>
7 /// 添加服务: swagger
8 /// </summary>
9 /// <param name="services"></param>
10 /// <returns></returns>
11 public static void AddCustSwagger(this IServiceCollection services)
12 {
13 var version = "V1.0";
14 var apiName = "XXX系统";
15 services.AddSwaggerGen(options =>
16 {
17 options.ResolveConflictingActions(apiDescriptions => apiDescriptions.First());
18
19 options.SwaggerDoc("system_v1", new OpenApiInfo
20 {
21 Version = version,
22 Title = $"{apiName} API",
23 Description = $"{apiName} {version} 接口服务"
24 });
25
26 //获取应用程序所在目录
27 var basePath = Path.GetDirectoryName(typeof(SwaggerExtend).Assembly.Location);
28 var xmlPath = Path.Combine(basePath, "ProjectName.xml");
29 //swagger界面默认只显示 方法&字段 注释,不显示 控制器注释
30 //第二个参数为true, 则是controller的注释
31 //options.IncludeXmlComments(xmlPath);
32 options.IncludeXmlComments(xmlPath, true);
33 });
34 }
35
36 /// <summary>
37 /// 添加中间件: swagger
38 /// </summary>
39 /// <param name="app"></param>
40 public static void UseCustSwagger(this IApplicationBuilder app)
41 {
42 app.UseSwagger();
43 app.UseSwaggerUI(options =>
44 {
45 options.SwaggerEndpoint("/swagger/system_v1/swagger.json", "系统API");
46 //默认路径为:/swagger/index.html
47 //路由前缀 - 设置为空,可直接跳转到swagger页面:/index.html
48 //api测试可设置为空,部署时容易与前端路由冲突
49 options.RoutePrefix = string.Empty;
50 });
51 }
52 }3.StartUp注册服务,添加中间件
public void ConfigureServices(IServiceCollection services)
{
services.AddCustSwagger();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseCustSwagger();
}
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]