.NET Core 3.1使用Swagger

1. 安装Swashbuckle.AspNetCore

在VS打开 NuGet 下载安装 Swashbuckle.AspNetCore :工具 → NuGet包管理器 → 管理解决方案的NuGet程序包 → 输入Swashbuckle搜索 →点击下载 

查看Swashbuckle.AspNetCore版本 :项目依赖项 →包 → Swashbuckle.AspNetCore版本

2. Startup类ConfigureServices注入Swagger服务

代码:

public void ConfigureServices(IServiceCollection services)
{
           // 添加Swagger
            services.AddSwaggerGen(options =>
            {
                options.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" });
                // 获取xml文件名
                var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
                // 获取xml文件路径
                var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
                // 添加控制器层注释,true表示显示控制器注释
                options.IncludeXmlComments(xmlPath, true);
            });
}

3. Startup类ConfigureServices添加Swagger中间件

代码:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
            // 添加Swagger有关中间件
                app.UseSwagger();
                app.UseSwaggerUI(c =>
                {
                    c.SwaggerEndpoint("/swagger/v1/swagger.json", "coreMVC3.1");
                    //c.RoutePrefix = string.Empty;
                    c.RoutePrefix = "API";     //如果是为空 访问路径就为 根域名/index.html,注意localhost:端口号/swagger是访问不到的
                                               //路径配置,设置为空,表示直接在根域名(localhost:8001)访问该文件
                                               // c.RoutePrefix = "swagger"; // 如果你想换一个路径,直接写名字即可,比如直接写c.RoutePrefix = "swagger"; 则访问路径为 根域名/swagger/index.html

                });
}

5. 添加控制器

6. 生成XML文件:

项目右键,选择属性,生成,勾选“XML文档文件”,如下图所示(配置:本地(Debug),这个配置仅为本地调试)

仅仅这个配置在发布环境访问Swagger会报错,所以配置要选择Release也要配置生成XML文档文件

 本地环境:

发布环境:

运行程序Swagger界面

 

原文地址:https://www.cnblogs.com/Intellectualscholar/p/15789177.html