一、背景

随着前后端分离模式大行其道,我们需要将后端接口撰写成文档提供给前端,前端可以查看我们的接口,并测试,提高我们的开发效率,减少无效的沟通。在此情况下,通过代码自动生成文档,这种需求应运而生,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. centos7 windows7 双系统重新构建引导和启动顺序

    安装centos后无法引导启动windows7的解决方法 在电脑Windows7系统上安装Centos7,安装后找不到Windows7引导菜单. 原因:因为CentOS 7已采用新式的grub2系统, ...

  2. openstack 基镜像展开过程

  3. Linux中显示系统中USB信息的lsusb命令

    来源:Linux中国  原文:https://linux.cn/article-2448-1.html 通用串行总线(USB)被设计成为连接计算机外设的标准,如键盘.鼠标.打印机.数码相机.便携式媒体 ...

  4. Java并发包线程池之ForkJoinPool即ForkJoin框架(一)

    前言 这是Java并发包提供的最后一个线程池实现,也是最复杂的一个线程池.针对这一部分的代码太复杂,由于目前理解有限,只做简单介绍.通常大家说的Fork/Join框架其实就是指由ForkJoinPoo ...

  5. ISO/IEC 9899:2011 条款6.4.4——常量

    6.4.4 常量 语法 1.constant: integer-constant floating-constant enumeration-constant character-constant 约 ...

  6. Qt 自定义信号SIGNAL

    emit toLine(lineQStr);connect(vcthread, SIGNAL(toLine(QString)), this, SLOT(appendText(QString)));

  7. 重置密码解决MySQL for Linux

    重置密码解决MySQL for Linux错误 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor ...

  8. 123457123457---com.threeapp.ShuiShiYanLiWang01----谁是眼力王

    com.threeapp.ShuiShiYanLiWang01----谁是眼力王

  9. LeetCode_28. Implement strStr()

    28. Implement strStr() Easy Implement strStr(). Return the index of the first occurrence of needle i ...

  10. php关于文件上传的两个配置项说明

    ; Maximum allowed size for uploaded files.; http://php.net/upload-max-filesizeupload_max_filesize = ...