.Net6添加Swagger
.Net6添加Swagger
一.添加Swagger引用
添加 Swashbuckle.AspNetCore包

二.使用Swagger
1.新建TestController控制器
[ApiController]
[Route("[controller]/[action]")]
public class TestController : Controller
{
    /// <summary>
    /// 获取信息
    /// </summary>
    /// <returns></returns>
    [HttpGet]
    public string GetInfo()
    {
        return "OK";
    }
    /// <summary>
    /// 添加信息
    /// </summary>
    /// <param name="request">订单信息</param>
    /// <returns></returns>
    [HttpPost]
    public string AddInfo([FromBody] TestInfo request)
    {
        return "ok";
    }
}
2.新建TestInfo类
   public class TestInfo
{
    /// <summary>
    /// 名字
    /// </summary>
    public string Name { get; set; }
    /// <summary>
    /// 年纪
    /// </summary>
    public int Age { get; set; }
    /// <summary>
    /// 地址
    /// </summary>
    public decimal Adress { get; set; }
}
3.在Program.cs添加Swagger
using Microsoft.OpenApi.Models;
using System.Reflection;
//WebApplication表示整个Web应用程序,调用CreateBuilder()方法创建一个WebApplication对象
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
//WebApplication对象添加RazorPage服务,也可以添加其他服务,比如依赖注入,登录等
//builder.Services.AddRazorPages();
builder.Services.AddControllersWithViews();
//创建Swagger
builder.Services.AddSwaggerGen(options =>
{
	options.SwaggerDoc("v1", new OpenApiInfo
	{
		Version="v1",
		Title="API标题",
		Description="API描述"
	});
});
//构建一个WebApplication实例
var app = builder.Build();
// Configure the HTTP request pipeline.
//添加一个异常处理中间件,此中间件发生作用的条件是:当前运行环境必须是开发环境,如果Web应用程序出现问题,则跳转到Error.CSHTML页面
if (!app.Environment.IsDevelopment())
{
	//app.UseExceptionHandler("/Error");
	//The default HSTS value is 30 days.You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
	//app.UseHsts();
}
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "v1");
c.RoutePrefix = string.Empty;
c.DocExpansion(Swashbuckle.AspNetCore.SwaggerUI.DocExpansion.None);
c.DefaultModelsExpandDepth(-1);
});
app.UseHttpsRedirection();
//启用静态文件中间件,加上这行代码后,我们在浏览器中才能访问wwwroot目录下的文件,否则会报错
app.UseStaticFiles();
//启动路由中间件,启用后再浏览器中输入网址Web应用才能正确解析
app.UseRouting();
//启用权限校验中间件,当我们的网站是基于身份认证的话需要用到
app.UseAuthorization();
//启用RazorPages中间件,如果是Mvc应用,则使用app.UseMvc()中间件
//app.MapRazorPages();
app.MapControllerRoute(
	name: "default",
	pattern: "{controller=Home}/{action=Index}/{id?}");
//启动应用,当我们开始执行WebApp,浏览器就会帮我们打开网站Index页面,
//如果去掉这一行,就会提示没有此对象关联的进程
app.Run();

此时点击运行应该会出现如下效果

4.Swagger添加接口注释
右键选择编辑项目文件

添加 <GenerateDocumentationFile>true</GenerateDocumentationFile>

在Program.CS中添加以下代码
var xmlFilename = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
options.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFilename));

运行程序,效果如下:

5.修改默认端口
找到 launchSettings.json文件


 
                    
                     
                    
                 
                    
                 
                
            
         
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号