这周因为公司的需求需要我做一个Api的程序,这周的三天时间我一直在Core Api和 framework Api之间做纠结。不知道要使用哪一个去做项目,想着想着就决定了。既然两个我都没用过那个何不来使用Core Api来做呢。也是对自己的一种锻炼!

OK,接下来回归正题!

Core下的Swagger和传统framework  Mvc下的Swagger是不一样的!

 两者的差距:

      其一:引用的程序集不一样。

         其二:安装完程序集后需要配置的地方不一样,

                            framework  下的Swagger安装完后会有swaggerconfig和swaggernet这连个文件。它也是在这两个文件下做配置。

                            Core 的安装完成以后没有这两个文件,它的配置是在Core项目里Startup文件里做配置!

        开始安装Swagger:

       对你的Api项目找到NuGet管理包,然后搜索“Swashbuckle.AspNetCore”。找到下面图片中的程序包然后安装即可!

       

安装完成后会在你的程序包里显示出来!(如下图所示)

接下来就是配置的问题了,在Startup.cs文件中做配置

首先先引入如下命名空间:

using Swashbuckle.AspNetCore.Swagger;

将 Swagger 生成器添加到 Startup.ConfigureServices 方法中的服务集合中:(这个是简短版的,后续我们在往里添加具体的更多的内容)

//注册Swagger生成器,定义一个和多个Swagger 文档
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("EHHD", new Info { Title = "EHHD", Version = "接口文档" });
});

在 Startup.Configure 方法中,启用中间件为生成的 JSON 文档和 Swagger UI 提供服务:

  // 配置Swagger  必须加在app.UseMvc前面
app.UseSwagger();
//Swagger Core需要配置的 必须加在app.UseMvc前面
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/EHHD/swagger.json", "EHHDAPI");
});

这样启动项目,在网站的localhost端口号后面加上Swagger就可以浏览Api文档了。但是这样的文档没有注释。 添加注释需要做一下的操作!

启用XML 注释:

  • 右键单击“解决方案资源管理器”中的项目,然后选择“属性”
  • 查看“生成”选项卡的“输出”部分下的“XML 文档文件”框    (注意下图中红色框框标记的XML文件名,待会需要用到!)

 注意:

​ 1.对于 Linux 或非 Windows 操作系统,文件名和路径区分大小写。 例如,“SwaggerDemo.xml”文件在 Windows 上有效,但在 CentOS 上无效。

​ 2.获取应用程序路径,建议采用Path.GetDirectoryName(typeof(Program).Assembly.Location)这种方式或者·AppContext.BaseDirectory这样来获取

 3.要想有注释需要添加的代码在下面的代码的注释里有,就是最下面的三个代码。第二行的XML文件名注意对应你自己项目的XML文件名!

  //Swagger所需要的配置项
services.AddSwaggerGen(c =>
{
//添加Swagger.
c.SwaggerDoc("EHHD", new Info
{
Version = "EHHD",
Title = "医患互动接口文档",
Description = "This EHHD Api",
//服务条款
TermsOfService = "None",
//作者信息
Contact = new Contact
{
Name = "Sir_博",
Email = string.Empty,
Url = "http://www.cnblogs.com/Scholars/"
},
//许可证
License = new License
{
Name = "许可证名字",
Url = "http://www.cnblogs.com/Scholars/"
}
});
// 下面三个方法为 Swagger JSON and UI设置xml文档注释路径
var basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location);//获取应用程序所在目录(绝对,不受工作目录影响,建议采用此方法获取路径)
var xmlPath = Path.Combine(basePath, "EHHD_Api.xml");
c.IncludeXmlComments(xmlPath);
}); //读取aoosettings.json里配置的数据库连接语句需要的代码
services.Configure<DBContext>(Configuration.GetSection("SqlConfiguration"));
}

这样整个Swagger的Api文档已经搭建完成了,我们来看看效果!

      但有一个问题就是每次运行项目都徐璈自己在页面的端口号后面手动输入Swagger这样的路径。让人很苦恼,那我们就来配置一下让它自动取到Swagger的Api页面!

展开项目的Properties下拉,打开launchSettings.json。对下图中的练个箭头标记的地方改成swagger就可以了!

Asp.Net Core Api 使用Swagger管理文档教程的安装与使用的更多相关文章

  1. asp.net core Api集成Swagger

    当我们通过vs创建了一个api项目后,便可以开始集成swagger了 一.Swagger集成 从“程序包管理器控制台”窗口进行安装,执行Install-Package Swashbuckle.AspN ...

  2. 如何在ASP.NET Core 中快速构建PDF文档

    比如我们需要ASP.NET Core 中需要通过PDF来进行某些简单的报表开发,随着这并不难,但还是会手忙脚乱的去搜索一些资料,那么恭喜您,这篇帖子会帮助到您,我们就不会再去浪费一些宝贵的时间. 在本 ...

  3. asp.net core Api配置swagger

    这个很简单的一篇文章用来记录以下使用swagger的过程,以后有用. 1.nuget 下载install-package Swashbuckle.AspNetCore 2.startup里面confi ...

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

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

  5. ASP.NET Core WebApi使用Swagger生成api

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

  6. ASP.NET Core WebApi使用Swagger生成api说明文档

    1. Swagger是什么? Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件 ...

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

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

  8. ASP.NET CORE API Swagger+IdentityServer4授权验证

    简介 本来不想写这篇博文,但在网上找到的文章博客都没有完整配置信息,所以这里记录下. 不了解IdentityServer4的可以看看我之前写的入门博文 Swagger 官方演示地址 源码地址 配置Id ...

  9. Asp.Net Core中使用Swagger,你不得不踩的坑

    很久不来写blog了,换了新工作后很累,很忙.每天常态化加班到21点,偶尔还会到凌晨,加班很累,但这段时间,也确实学到了不少知识,今天这篇文章和大家分享一下:Asp.Net Core中使用Swagge ...

随机推荐

  1. Java 基础 一文搞懂泛型

    本文将从以下四个方面来系统的讲解一下泛型,基本上涵盖了泛型的主体内容. 什么是泛型? 为什么要使用泛型? 如何使用泛型? 泛型的特性 1. 什么是泛型? 泛型的英文是Generics,是指在定义方法. ...

  2. Spring Cloud & Alibaba 实战 | 第十二篇: 微服务整合Sentinel的流控、熔断降级,赋能拥有降级功能的Feign新技能熔断,实现熔断降级双剑合璧(JMeter模拟测试)

    目录 一. Sentinel概念 1. 什么是Sentinel? 2. Sentinel功能特性 3. Sentinel VS Hystrix 二. Docker部署Sentinel Dashboar ...

  3. Thinkphp树形菜单相关方法

    1 <?php 2 3 /** 4 * Menu(菜单管理) 5 */ 6 namespace Admin\Controller; 7 use Common\Controller\Adminba ...

  4. 子域名查询、DNS记录查询

    目录 子域名信息查询 Layer子域名爆破机 subDomainBrute 利用google查询 HTTP证书查询 DNS记录查询脚本 IP转换为经纬度 利用网页获取对方经纬度信息 首先关于DNS域名 ...

  5. js限制上传文件类型和大小

    <html> <head> <script type="text/javascript"> function fileChange(target ...

  6. 10个 解放双手的 IDEA 插件,这些代码都不用写(第二弹)

    本文案例收录在 https://github.com/chengxy-nds/Springboot-Notebook 大家好,我是小富~ 鸽了很久没发文,不写文章的日子真的好惬意,每天也不用愁着写点什 ...

  7. Nmap浅析(2)——端口发现

    端口发现 ​ 每台网络设备最多有216(65536)个端口,端口的作用是实现"一机多用".操作系统分了65536个端口号,程序在发送的信息中加入端口号,操作系统在接收到信息后按照端 ...

  8. es6.4.0安装和配置IK+拼音插件 实现非全拼搜索

    安装IK分词器 一.进入到es的plugins文件夹创建文件夹analysis-ikmkdir analysis-ik二.下载ik压缩包文件wget https://github.com/medcl/ ...

  9. micro 从cli的tag中获取配置

    官方文档: https://micro.mu/docs/go-config.html https://github.com/micro/go-micro/tree/master/config/sour ...

  10. [OS] 概述&学习资料

    计算机启动 启动自检 初始化启动 启动加载 内核装载 登录 中断 硬件中断 I/O设备 CPU Timer:时间片结束后,发中断给CPU Scheduler:将CPU合理分配任务使用 异常中断 内存: ...