官方文档推荐两种框架:Swashbuckle 和 NSwag,这里使用 Swashbuckle 来生成接口文档。

目录

  1. 安装包
  2. 添加服务
  3. 配置中间件
  4. 添加 UI
  5. 设置接口详细信息

1 安装包

需要安装的包:

Swashbuckle.AspNetCore.Swagger,Swashbuckle.AspNetCore.SwaggerGen,Swashbuckle.AspNetCore.SwaggerUI

或者安装一个完整的包

Swashbuckle.AspNetCore

  这里我们为了省事,所以使用完整的包。点击工具->NuGet 包管理器->程序包管理器控制台。在控制台中输入:

Install-Package Swashbuckle.AspNetCore -Version 5.0.0-rc4

2 添加服务

  在Startup.ConfigureServices中添加 Swagger 服务:

services.AddSwaggerGen(x =>
{
x.SwaggerDoc("v1", //必须和UI的路径相同
//相关的文字信息
new OpenApiInfo() {
Title = "MyApi",
Version = "v1",
Description ="第一个版本"
});
});

3 配置中间件

  添加app.UseSwagger();中间件,至此可以打开浏览器访问http://localhost:<port>/swagger/v1/swagger.json页面上显示出生成的 json 文档。如图:

4 添加 UI

  我们需要在中间件中添加 UI 的中间件:

app.UseSwaggerUI(c =>{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "版本名称");
//将接口文档设置为首页
//如果不设置为首页访问地址为:/swagger/index.html
c.RoutePrefix = string.Empty;
});

  启动程序可以看见:

5 设置接口详细信息

  虽然这样可以一目了然的看到有哪些接口,但是在实际使用中还需要添加一些接口注释。Swagger 读取 xml 文件进行展示,所以先在项目文件中添加

<PropertyGroup>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<NoWarn>$(NoWarn);1591</NoWarn>
</PropertyGroup>

  修改注入服务:

services.AddSwaggerGen(x =>{
x.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo() { Title = "MyApi", Version = "v1", Description ="第一个版本"}); //读取xml文件的名字:项目名.xml
var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; //写成一个绝对路径
var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile); //将这个文件添加到配置
x.IncludeXmlComments(xmlPath);
});

  接口注释与对应的效果:





404 状态码在下面就不截图了

总结

  按照官方文档走了一遍,不是很难倒是也需要把各个地方对应起来,如果错误的地方,请各位留言。

.net core启用Swagger的更多相关文章

  1. asp.net core 使用 swagger 生成接口文档

    参考地址:http://www.cnblogs.com/daxnet/p/6181366.html http://www.jianshu.com/p/fa5a9b76f3ed 微软参考文档:https ...

  2. .NET Core和Swagger 生成 Api 文档

    测试/生产环境的BUG 这里更新一下在本地调试正常,在INT/PROD上抛错,错误信息为: */**/*.xml(Swagger json file) 文件找不到,在startup 里builder ...

  3. .NET Core和Swagger 生成 Api 文档转

    阅读目录 1.引用 2.打开startup.cs文件 3.设置XML注释 4.运行结果 5.主要问题的解决办法 6.可以自定义UI 前言 最近写了好多Web api, 老大说太乱了,要整理一下,使用S ...

  4. .net core 使用 swagger 生成接口文档

    微软参考文档:https://docs.microsoft.com/en-us/aspnet/core/tutorials/web-api-help-pages-using-swagger?tabs= ...

  5. Asp.net Core的Swagger接口根据模块、版本分组

    近期一直在学习Asp.net Core,微软的文档太难看,都是英文翻译过来的,很不友好,感谢这个博客,从壹开始前后端分离[ .NET Core2.0 +Vue2.0 ],让我入门了,刚学到这个Swag ...

  6. swagger core 和 swagger ui 如何关联【窥探】

    几个片段: package io.swagger.jaxrs.listing; import io.swagger.annotations.ApiOperation; import org.apach ...

  7. C#中缓存的使用 ajax请求基于restFul的WebApi(post、get、delete、put) 让 .NET 更方便的导入导出 Excel .net core api +swagger(一个简单的入门demo 使用codefirst+mysql) C# 位运算详解 c# 交错数组 c# 数组协变 C# 添加Excel表单控件(Form Controls) C#串口通信程序

    C#中缓存的使用   缓存的概念及优缺点在这里就不多做介绍,主要介绍一下使用的方法. 1.在ASP.NET中页面缓存的使用方法简单,只需要在aspx页的顶部加上一句声明即可:  <%@ Outp ...

  8. .net core 使用swagger生成API文档

    [1]安装Swashbuckle.AspNetCore包 [2]在Startup.cs中注册swagger //注册Swagger生成器,定义一个和多个Swagger 文档 services.AddS ...

  9. .net core的Swagger接口文档使用教程(二):NSwag

    上一篇介绍了Swashbuckle ,地址:.net core的Swagger接口文档使用教程(一):Swashbuckle 讲的东西还挺多,怎奈微软还推荐了一个NSwag,那就继续写吧! 但是和Sw ...

随机推荐

  1. bootstrap基础样式学习(二)——栅格

    (1)最外层必须使用容器 div.container或 div.container-fluid (2)容器可以放置任何内容,若想使用栅格系统必须用 div.row div.container > ...

  2. [TCP/IP] TCP如何保证可靠性

    1.数据包校验,发送方计算校验和,接收方结算校验和,进行对比2.应答机制,seq序列号与ack确认号 3.超时重传机制,发送后启动定时器,进行重传 4.连接管理,三次和四次5.对失序数据包重排序6.流 ...

  3. Eric6 黑色风格配置

    界面风格-黑色主题 1.设置-首选项-界面-风格选择Fusion,再配置题样式表选择路径下的eric6\Styles选择[Chinese_Dark.qss]进行修改. ​ 编辑器风格 2.选择完毕后, ...

  4. c# 第16节 一维数组的声明及使用

    本节内容: 1:为什么要有使用数组 2:数组的简介 3:一维数组的声明 4: 实例数组声明 5:一维数组的使用 6:一维数组使用注意地方 1:为什么要使用数组 2:数组的简介 3:一维数组的声明 4: ...

  5. Oracle告Google输了

    Oracle告Google输了 boxi • 2016-05-27 • 大公司 Google表示,陪审团的认定代表了Android生态体系.Java开发社区以及依靠开放免费编程语言开发创新消费者产品的 ...

  6. Django简介(MVC、MTV)

    Django简介 MVC Model(模型)- 应用程序中处理数据逻辑部分且与数据库交互,用于存取数据的部分 View(视图)- 用于处理后的数据界面展示,且视图通常是由模型数据创建的,是用户看到并与 ...

  7. AOP的理解与实现

    AOP:面向切面编程,在不破坏原有代码的情况下,提供新的功能.可以使用AOP添加通用功能,比如事务.日志.权限.异常.缓存... 常见的AOP:MVC中的过滤器.HttpModule... 如何实现A ...

  8. Scrapy框架详解

    Python网络爬虫Scrapy框架研究 Scrapy1.0教程 Scrapy笔记(1)- 入门篇 Scrapy笔记(2)- 完整示例 Scrapy笔记(3)- Spider详解 Scrapy笔记(4 ...

  9. [LeetCode] 918. Maximum Sum Circular Subarray 环形子数组的最大和

    Given a circular array C of integers represented by A, find the maximum possible sum of a non-empty ...

  10. Spring Cloud Gateway 结合配置中心限流

    前言 上篇文章我讲过复杂的限流场景可以通过扩展RedisRateLimiter来实现自己的限流策略. 假设你领导给你安排了一个任务,具体需求如下: 针对具体的接口做限流 不同接口限流的力度可以不同 可 ...