1、什么是Swagger?

Swagger是一个规范且完整的框架,提供描述、生产、消费和可视化RESTful API,它是为了解决Web API生成有用文档和帮助页的问题。

2、为啥选用swagger?

1)它具有交互式文档、客户端SDK生成和API可发现性等优点。

2)书写api说明文档的工具有很多,但是能称之框架只有swagger

3、Swagger 规范 (swagger.json)

Swagger 流的核心是 Swagger 规范,默认情况下是名为 swagger.json 的文档。 它由 Swagger 工具链(或其第三方实现)根据你的服务生成。 它描述了 API 的功能以及使用 HTTP 对其进行访问的方式。 它驱动 Swagger UI,并由工具链用来启用发现和客户端代码生成。

4、ASP.NET Core 使用Swagger生成api说明文档

4.1引用Nuget包,“Swashbuckle.AspNetCore”

Swashbuckle.AspNetCore 是一个开源项目,用于生成 ASP.NET Core Web API 的 Swagger 文档。

Swashbuckle 有三个主要组成部分:

  • Swashbuckle.AspNetCore.Swagger:将 SwaggerDocument 对象公开为 JSON 终结点的 Swagger 对象模型和中间件。

  • Swashbuckle.AspNetCore.SwaggerGen:从路由、控制器和模型直接生成 SwaggerDocument 对象的 Swagger 生成器。 它通常与 Swagger 终结点中间件结合,以自动公开 Swagger JSON。

  • Swashbuckle.AspNetCore.SwaggerUI:Swagger UI 工具的嵌入式版本。 它解释 Swagger JSON 以构建描述 Web API 功能的可自定义的丰富体验。 它包括针对公共方法的内置测试工具。

4.2添加并配置Swagger中间件

在Startup.cs类中,编辑ConfigureServices方法

public void ConfigureServices(IServiceCollection services)

{

services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

services.AddSwaggerGen(c =>

{

c.SwaggerDoc("V1.0", new Swashbuckle.AspNetCore.Swagger.Info

{

Title = "My WebAPI",

Description="API说明文档",

Version = "V1.0",

Contact=new Swashbuckle.AspNetCore.Swagger.Contact { Name="Blog.Core"}

});

});

}

4.3在Startup.cs类中Configure 方法中,启用中间件生成Json文档和SwaggerUI提供服务

public void Configure(IApplicationBuilder app, IHostingEnvironment env)

{

if (env.IsDevelopment())

{

app.UseDeveloperExceptionPage();

}

app.UseSwagger();

app.UseSwaggerUI(c => {

c.SwaggerEndpoint("/swagger/v1/swagger.json", "My Web API");

});

app.UseMvc();

}

到此,已经完成Swagger的添加,启动项目,在端口后面输入/Swagger,然后回车,就可看到生成API文档效果了

注意:如果ConfigureServices 方法中的  services.AddSwaggerGen 注册的一个名字 c.SwaggerDoc("v1.0"的V1.0, 和Configure 方法中的app.UseSwaggerUI(c => {

c.SwaggerEndpoint("/swagger/v1/swagger.json", "My Web API");

})的V1不一致,将会出现下面的bug

5、总结

通过本篇文章的简单介绍,我们可以简单了解到:

1、什么是Swagger?

2、swagger的优点。

3、ASP.NET Core 使用Swagger生成api说明文档。

4、ASP.NET Core使用Swagger中常遇到的错误

源码已经放到Github上面,地址是:https://github.com/xiaoerhao/Blog.Core

写博客也是为了督促自己学习和记录学习的内容,最后感谢"老张的哲学"对于知识的分享,很多时候都是在他们这些前辈的基础上去学习,下一次再分享关于swagger api文档注释和汉化。

原文地址:https://www.cnblogs.com/Erhao/p/11016133.html

ASP.NET Core WebAPI帮助页--Swagger简单使用1.0相关推荐

  1. ASP.NET Core WebApi使用Swagger生成api说明文档看这篇就够了

    引言 在使用asp.net core 进行api开发完成后,书写api说明文档对于程序员来说想必是件很痛苦的事情吧,但文档又必须写,而且文档的格式如果没有具体要求的话,最终完成的文档则完全取决于开发者 ...

  2. 【转】ASP.NET Core WebApi使用Swagger生成api说明文档看这篇就够了

    原文链接:https://www.cnblogs.com/yilezhu/p/9241261.html 引言 在使用asp.net core 进行api开发完成后,书写api说明文档对于程序员来说想必 ...

  3. asp.net core WebAPI实现CRUD

    本节用于构建一个简单的WebAPI来管理to-do列表.不会创建用户界面. API Description Request body Response body GET /api/todo Get a ...

  4. ASP.NET Core WebApi构建API接口服务实战演练

    一.ASP.NET Core WebApi课程介绍 人生苦短,我用.NET Core!提到Api接口,一般会想到以前用到的WebService和WCF服务,这三个技术都是用来创建服务接口,只不过Web ...

  5. ASP.NET CORE WEBAPI文件下载

    最近要使用ASP.NET CORE WEBAPI用来下载文件,使用的.NET CORE 3.1.考虑如下场景: 文件是程序生成的. 文件应该能兼容各种格式. 浏览器可以感知进行下载. 准备 经过简单的 ...

  6. ASP.Net Core WebApi几种版本控制对比

    ASP.Net Core WebApi几种版本控制对比 原文:ASP.Net Core WebApi几种版本控制对比 一.版本控制的好处: (1)有助于及时推出功能, 而不会破坏现有系统. (2)它还 ...

  7. 第十四节:Asp.Net Core WebApi生成在线文档-第十九节

    一. 基本概念 1.背景 使用 Web API 时,了解其各种方法对开发人员来说可能是一项挑战. Swagger 也称为OpenAPI,解决了为 Web API 生成有用文档和帮助页的问题. 它具有诸 ...

  8. ASP.NET Core WebAPI控制器返回类型的最佳选项

    ASP.NET Core WebAPI控制器返回类型的最佳选项 原文:ASP.NET Core WebAPI控制器返回类型的最佳选项 前言 从.NET Core 2.1版开始,到目前为止,控制器操作可 ...

  9. IIS部署asp.net core webapi

    一.需要安装Windows Server Hosting,作用是让IIS有方向代理功能(Asp.Net Core Module负责反向代理工作),将请求转发到Kestrel,Windows serve ...

最新文章

  1. matlab计算每个细胞面积,手把手教你用Imaris 计算细胞面积
  2. boot spring test 文档_SpringBoot入门建站全系列(五)使用Spring-data-jpa操作数据库
  3. spring事务管理-注解配置aop事务(重点)
  4. 作家百态之一:作家、批评家与酒
  5. 2G、3G 和 4G
  6. 手机界面常见的的九宫格
  7. python显卡利用率_Linux和Windows查看当前运行的 python 进程及 GPU、磁盘利用率
  8. 雷军再失猛将!小米12号创始员工离职 曾一起喝粥创立小米
  9. auxiliary variable(辅助变量)的引入
  10. android之添加raw文件
  11. js控制layui radio button选中
  12. 浅谈Google三篇大数据论文
  13. “甜野男孩”——丁真
  14. Java标识符命名规则,运算符,分支结构
  15. CString源代码
  16. Unity 协程的原理
  17. vue 自动px单位自动转换rem
  18. 墨客科技执行董事袁英:MOAC区块链赋能实体产业的方案与实践
  19. Spring boot 发送手机验证码
  20. SEO歪解:SEO与厨师的联想

热门文章

  1. 在Data Lake Analytics中使用视图
  2. zookeeper学习03 使用场景
  3. Atitit.ati orm的设计and架构总结 适用于java c# php版
  4. Oracle常用sql语句(一)
  5. 第十周项目1-程序填空与阅读(一)
  6. 【bayes】贝叶斯likelihood和model
  7. 批处理解决局域网共享打印机问题
  8. centos服务器解决vsftp连接时的“550 Create directory operation failed.”错误
  9. java.lang.NoClassDefFoundError: org.ksoap2.serialization.SoapObject
  10. session、cookie、隐藏域、url参数传递四种会话及跟踪方式