Swagger文档

安装NuGet包

Install-Package Swashbuckle.AspNetCore

添加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文档的基本信息,如标题和版本等。

添加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]

最后更新于

这有帮助吗?