一、背景

随着前后端分离模式大行其道,我们需要将后端接口撰写成文档提供给前端,前端可以查看我们的接口,并测试,提高我们的开发效率,减少无效的沟通。在此情况下,通过代码自动生成文档,这种需求应运而生,swagger可以通过我们的代码和注释自动生成相关api接口文档,并且可以在线查看,实时更新,轻松测试,解决了我们的实际问题。

二、创建Webapi项目,并添加swagger引用

2.1 使用vs创建一个netcore2.2的webapi项目







项目创建成功,Controllers文件夹中即为我们的api接口

2.2 添加swagger包引用

通过nuget添加swagger包,需要引用两个包,包名称为

Swashbuckle.AspNetCore
Swashbuckle.AspNetCore.Annotations

三、创建接口并验证生成的api文档

3.1 在项目的Startup.cs文件中添加引用using Swashbuckle.AspNetCore.Swagger;

3.2 在ConfigureServices方法中添加如下代码

      services.AddSwaggerGen(options =>
{
options.SwaggerDoc("v1", new Info() { Title = "Api", Version = "V1" });
var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
options.IncludeXmlComments(xmlPath);
});

3.3 在Configure方法中添加启用方法

  app.UseSwagger()
.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
});

3.4 生成XML文件,并验证



验证自动生成的文档



我们的接口文档已经自动生成,且可测试

3.5 编写Controller并验证

创建控制器PersonController,继承自Controller,代码如下

   [ApiController]
public class PersonController : Controller
{
/// <summary>
/// 获取人员信息
/// </summary>
///
/// <returns></returns>
[HttpGet]
[Route("api/Person/Index")]
public List<Person> Index()
{
return new List<Person>()
{
new Person() {Age = 10, Name = "张三"},
new Person() {Age = 20, Name = "李四"},
};
}
}

此时再打开swagger文档并查看



可以看到我们的注释也在文档中显示了。

四、小结

swagger是一个非常强大的插件,可以帮助我们快速生成api文档,给前后端分离带来了极大的方便。

参考文档:

1.https://github.com/domaindrivendev/Swashbuckle.AspNetCore

2.https://www.cnblogs.com/viter/p/10053660.html

3.https://www.cnblogs.com/yilezhu/p/9241261.html

使用swagger在netcorewebapi项目中自动生成文档的更多相关文章

  1. 使用 Swagger 自动生成 ASP.NET Core Web API 的文档、在线帮助测试文档(ASP.NET Core Web API 自动生成文档)

    对于开发人员来说,构建一个消费应用程序时去了解各种各样的 API 是一个巨大的挑战.在你的 Web API 项目中使用 Swagger 的 .NET Core 封装 Swashbuckle 可以帮助你 ...

  2. SpringBoot 集成Swagger2自动生成文档和导出成静态文件

    目录 1. 简介 2. 集成Swagger2 2.1 导入Swagger库 2.2 配置Swagger基本信息 2.3 使用Swagger注解 2.4 文档效果图 3. 常用注解介绍 4. Swagg ...

  3. MVC WEB api 自动生成文档

    最近在一直在用webapi做接口给移动端用.但是让我纠结的时候每次新加接口或者改动接口的时候,就需要重新修改文档这让我很是苦恼.无意中发现.webapi居然有自动生成文档的功能....真是看见了救星啊 ...

  4. 使用doctest代码测试和Sphinx自动生成文档

    python代码测试并自动生成文档 Tips:两大工具:doctest--单元测试.Sphinx--自动生成文档 1.doctest doctest是python自带的一个模块.doctest有两种使 ...

  5. eoLinker 新功能发布,增加了识别代码注释自动生成文档功能

    产品地址:https://www.eolinker.com开源代码:https://www.eolinker.com/#/os/download在线生成代码注释工具:http://tool.eolin ...

  6. 【Sphinx】 为Python自动生成文档

    sphinx 前言 Sphinx是一个可以用于Python的自动文档生成工具,可以自动的把docstring转换为文档,并支持多种输出格式包括html,latex,pdf等 开始 建一个存放文档的do ...

  7. 使用Sphinx为你的python模块自动生成文档

    Sphinx是一个可以用于Python的自动文档生成工具,可以自动的把docstring转换为文档,并支持多种输出格式包括html,latex,pdf等. 安装 创建一个sphinx项目 下面的命令会 ...

  8. 用doxygen自动生成文档

    1. 添加符合doxygen解析规则的注释 (比如函数说明,函数参数/返回值说明) 用qt-creator可以在函数上方一行键入“/**”,然后直接回车,就可以自动生成默认的格式. 2. 安装doxy ...

  9. linux c/c++ 代码使用 doxygen 自动生成文档

    www.doxygen.org 的使用非常方便,下面分成2步介绍一下 1. 注释风格,需要在c/c++代码中按照下面的风格添加注释,基本上还是很顺手的 C++的注释风格 主要使用下面这种样式:即在注释 ...

随机推荐

  1. 【Oracle/Java】给十六张表各插入十万条数据 单线程耗时半小时 多线程耗时一刻钟

    测试机Oracle版本: SQL> select * from v$version; BANNER ----------------------------------------------- ...

  2. VMware vSphere Client中启动虚拟机提示No boot filename received/Operating System not found解决方法

    昨天下载安装 .NET Framework 3.5 SP1解决了VMware vSphere Client安装问题后,今天需要远程连接服务器搭建一台虚拟机. 根据指引步骤进行下一步.下一步的操作完成后 ...

  3. angular中的服务和持久化实现

    1.创建服务: ng g service my-new-service 创建到指定目录下面 ng g service services/storage 2.app.module.ts 里面引入创建的服 ...

  4. 查看QML数据类型

    assist输入: QML Types A Abstract3DSeries AbstractActionInput AbstractAnimation AbstractAxis AbstractAx ...

  5. [Feature] Feature selection

    Ref: 1.13. Feature selection Ref: 1.13. 特征选择(Feature selection) 大纲列表 3.1 Filter 3.1.1 方差选择法 3.1.2 相关 ...

  6. 123457123457#1#-----com.threeapp.circlerunner01----儿童旋转跑酷游戏

    com.threeapp.circlerunner01----儿童旋转跑酷游戏

  7. application.properties在Spring Boot项目中的位置

    application.properties可以放在如下位置: 当前目录的 "/config"的子目录下 当前目录下 classpath根目录的"/config" ...

  8. iOS-模态视图动画

    ios视图切换的动画效果 方法1.把下面的这段代码加到viewController或者view出现的时候就OK self.view.transform=CGAffineTransformMakeSca ...

  9. 02. oc语言是动态语言

    参照着知乎上大神们给的解释,(https://www.zhihu.com/question/19918532)自己要总结下知识: 自己初级并没有理解 动态.静态.强类型.弱类型 语言的这些含义,区分. ...

  10. 关于cookies、sessionStorage和localStorage解释及区别

    在浏览器查看 HTML4的本地存储 cookie 浏览器的缓存机制提供了可以将用户数据存储在客户端上的方式,可以利用cookie,session等跟服务端进行数据交互. 一.cookie和sessio ...