1、安装NuGet包
Install-Package Swashbuckle.AspNetCore
2、添加Swagger生成器
接下来在Startup类的ConfigureServices中添加Swagger生成器
services.AddSwaggerGen(s =>
{
s.SwaggerDoc("v1", new OpenApiInfo
{
Title = "LibraryExample.API",
Description = "ASP.NET Core与RESTful API开发实战",
Version = "v1",
Contact = new OpenApiContact
{
Name = "傲慢与偏见",
Email = "luchong1999@outlook.com",
Url = new Uri("https://github.com/luchong0813")
}
});
});
在ConfigureServices中使用AddSwaggerGen注册Swagger生成器时,通过SwaggerGenOptions类可以指定Swagger文档的基本信息,如标题和版本等。
3、添加SwaggerUI中间件
app.UseSwagger();
app.UseSwaggerUI(s =>
{
s.SwaggerEndpoint("/swagger/v1/swagger.json", "LibraryExample.API V1");
});
如果不希望某个控制器或Action展示在文档上,则可以为它添加
ApiExplorerSettings
特性,并将其IgnoreApi属性设为True
[ApiExplorerSettings(IgnoreApi = true)]
[HttpPost]
public IActionResult AddAuthor(AuthorForCreationDto creationDto)
SwaggerUI默认的URL是/swagger,如果想改变其URL,则可以修改SwaggerUIOptions对象的
RoutPrefix
属性
app.UseSwaggerUI(s =>
{
s.RoutePrefix = string.Empty;
s.SwaggerEndpoint("/swagger/v1/swagger.json", "LibraryExample.API V1");
});
运行效果
注意:如果出现如下图错误,请检查控制器上是否添加了请求方式,如[HttpGet]
、[HttpPost]