1、添加核心NuGet包 Swashbuckle.AspNetCore:
2、startup中进行配置
- 2.1、注入服务
public void ConfigureServices(IServiceCollection services) {
//注册Swagger生成器,定义一个Swagger文档
services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Version = "v1", Title = "Bingle API", Description = "一个简单的ASP.NET Core Web API", TermsOfService = new Uri("https://www.cnblogs.com/namelessblog/"), Contact = new OpenApiContact { Name = "bingle", Email = string.Empty, Url = new Uri("https://www.cnblogs.com/namelessblog/"), }, License = new OpenApiLicense { Name = "许可证", Url = new Uri("https://www.cnblogs.com/namelessblog/"), } }); //为 Swagger JSON and UI设置xml文档注释路径
var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile); if (File.Exists(xmlPath)) { c.IncludeXmlComments(xmlPath); } }); }
- 2.2、注入中间件
//启用中间件服务生成Swagger作为JSON终结点
app.UseSwagger();
//启用中间件以提供用户界面(HTML、JS、CSS等),特别是指定JSON端点
app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
//页面头名称
c.DocumentTitle = "平台API";
//页面API文档格式 Full = 全部展开, List = 只展开列表, None = 都不展开 c.DocExpansion(Swashbuckle.AspNetCore.SwaggerUI.DocExpansion.List);
//c.RoutePrefix = string.Empty;
});
注意:c.SwaggerDoc的第一个参数 要和 c.SwaggerEndpoint第一个参数 字符串swagger/后面的对应,本例用的是v1
3、api描述文档xml的生成地址和文件名,需要在项目的属性中进行配置,右键项目 -> 属性 -> 生成,如下所示:
禁止显示警告需要加上1591,忽略属性类名必须加xml注释
4、在controller中action方法都要指定http请求Post(新增),Put(修改),Delete(删除),Get(查询)中的一个,不然会报错:
http://localhost:19489/swagger/index.html 浏览器F12控制台查看错误原因