.net Core 3.x 中Swagger的使用

       无论是前端还是后端开发,都或多或少地被接口文档折磨过。前端经常抱怨后端给的接口文档与实际情况不一致。后端又觉得编写及维护接口文档会耗费不少精力,经常来不及更新。所以仅仅只通过强制来规范大家是不够的,随着时间推移,版本迭代,接口文档往往很容易就跟不上代码了。发现了痛点就要去找解决方案。这就是Swagger的由来,通过这套规范,你只需要按照它的规范去定义接口及接口相关的信息。再通过Swagger衍生出来的一系列项目和工具,就可以做到生成各种格式的接口文档。那么在.netCore 中如何使用它呢,废话不说,直接上代码。

一、安装Swashbuckle.AspNetCore

      在nuget 上直接搜索该安装包,安装到对应项目中即可

二、添加StartUp 中的配置项目
      1.在ConfigureServices 中添加以下代码

         .net Core 3.x 中Swagger的使用 

     2.在Configure 中添加以下代码

         .net Core 3.x 中Swagger的使用

以上两个步骤,就集成成功了,具体效果如下图所示,(多说一下,图中每个方法后边的中文描述信息(比如"获取首页的新闻")是对应Controller的xml 注释信息)

.net Core 3.x 中Swagger的使用

三、扩展

    1、虽然现在我们已经集成成功了,但是我们发现页面中(如上图所示) Article  和Home 没有对应的说明信息,对前端调用者来说不是很友好,所以我们继续改造,如下图中红框标注的代码所示,添加了Swagger的文档过滤项,其中AuthApplyTagDescriptions是我们自定义的一个类,需要继承Swashbuckle.AspNetCore.SwaggerGen的IDocumentFilter接口

         .net Core 3.x 中Swagger的使用

         .net Core 3.x 中Swagger的使用

2.我们来看下现在的效果

.net Core 3.x 中Swagger的使用

3.总结,一般在开发api 接口的时候,我们都会进行身份认证,比如JWT(JSON WEB TOkEN),具体可参考我的这一篇文章

  .net Core 3.x 中 jwt 的使用