.NET Core WebApi帮助文档使用Swagger生成Api说明文档

时间:2021-12-11 00:36:39

Swagger也称为Open API,Swagger从API文档中手动完成工作,并提供一系列用于生成,可视化和维护API文档的解决方案。简单的说就是一款让你更好的书写API文档的框架。

我们为什么选择swagger,现在的网站开发结果越来越注重前后端的分离,比如以前的webFrom到现在的mvc模式都是为了这个前后端的分离。就算再如何的分离实现,也是不可避免的要进行数据交互的,那么接口的重要性就提现出来了。他成了前端和后端交互的重要途径,API文档也因此成了前端开发人员与后端开发人员的重要纽带。所有我们有一个API文档框架岂不是美哉。

Swashbuckle有三个主要组件:

Swashbuckle.AspNetCore.Swagger:Swagger对象模型和中间件,将SwaggerDocument对象公开为JSON端点。
Swashbuckle.AspNetCore.SwaggerGen:一种Swagger生成器,可SwaggerDocument直接从路由,控制器和模型构建对象。它通常与Swagger端点中间件结合使用,以自动公开Swagger JSON。
Swashbuckle.AspNetCore.SwaggerUI:Swagger UI工具的嵌入式版本。它将Swagger JSON解释为构建丰富的,可定制的Web API功能描述体验。它包括用于公共方法的内置测试线束。

如何使用vs2019安装Swashbuckle

从“管理 NuGet 程序包”对话框中或“程序包管理器控制台”窗口进行安装。

从“程序包管理器控制台”窗口进行安装:

转到“视图” > “其他窗口” > “程序包管理器控制台”

将“默认项目”改为需要添加的项目。

输入命令 ·Install-Package Swashbuckle.AspNetCore

.NET Core WebApi帮助文档使用Swagger生成Api说明文档

从“管理 NuGet 程序包”对话框中:

右键单击“解决方案资源管理器” > “管理 NuGet 包”中的项目

将“包源”设置为“nuget.org”

在搜索框中输入“Swashbuckle.AspNetCore”

从“浏览”选项卡中选择“Swashbuckle.AspNetCore”包,然后单击“安装”

.NET Core WebApi帮助文档使用Swagger生成Api说明文档

如果你看到这段文字,说明您正使用RSS阅读或转自《一棵树-博客园》,原文地址:https://www.cnblogs.com/atree/p/netcore-WebApi-Swagger.html

添加并配置Swagger中间件

然后配置Startup.cs 文件中的ConfigureServices方法

//不要忘记引用一下using Swashbuckle.AspNetCore.Swagger命名空间,不然info类会报错 using Swashbuckle.AspNetCore.Swagger

public void ConfigureServices(IServiceCollection services) { services.AddMvc() .SetCompatibilityVersion (CompatibilityVersion.Version_2_1) .AddJsonOptions (options => options.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver ()); //JSON首字母小写解决; //注册Swagger生成器,定义一个和多个Swagger 文档 services.AddSwaggerGen(c => { c.SwaggerDoc ("v1", new Info { Title = "My API", Version = "v1" }); }); }

然后在Configure方法中添加:

//允许中间件为JSON端点服务生成的Siggg app.UseSwagger (); //使中间件能够服务于轻量级用户界面(HTML、JS、CSS等),并指定SWAGJER JSON端点 app.UseSwaggerUI (c => { c.SwaggerEndpoint ("/swagger/v1/swagger.json", "My API V1"); // 要在应用程序的根处提供Swagger UI ,请将该RoutePrefix属性设置为空字符串 c.RoutePrefix = string.Empty; });

启动应用,并导航到 :<port>/swagger/v1/swagger.json。 生成的描述终结点的文档显示如下json格式。

.NET Core WebApi帮助文档使用Swagger生成Api说明文档

可在 :<port>/swagger 找到 Swagger UI。也可设置其他地址,我把他配置成了根节点,这样直接启动根节点就是该页面。主要是上面代码中的: c.RoutePrefix = string.Empty这句代码。

.NET Core WebApi帮助文档使用Swagger生成Api说明文档

我们可以扩展一些附加信息,比如作者,许可证,服务条款等。传递给该AddSwaggerGen方法的配置: