1、先创建 .net core Web 应用程序,选择API

2、安装 Nuget 包:Swashbuckle.AspNetCore

Install-Package Swashbuckle.AspNetCore -Version 4.0.1

或者打开Nuget管理界面搜索Nlog.Web.AspNetCore(我安装的版本是V4.0.1)

3、注册依赖

通过修改Startup.cs里的ConfigureServices函数

  public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); #region 配置Swagger
services.AddSwaggerGen(c =>
{
#region 顶部基础信息 c.SwaggerDoc("v1", new Info
{
Version = "v1.1.0",
Title = "WebAPI",
Description = "API帮助文档",
TermsOfService = "None",
Contact = new Swashbuckle.AspNetCore.Swagger.Contact { Name = "NinaMua", Email = "791016081@qq.com", Url = "http://www.cnblogs.com/NinaMua" }
});
#endregion });
#endregion }

ConfigureServices

4、使用中间件

 public void Configure(IApplicationBuilder app, IHostingEnvironment env,ILoggerFactory loggerFactory)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseHsts();
} app.UseHttpsRedirection(); loggerFactory.AddNLog();//添加NLog
env.ConfigureNLog("nlog.config");//读取Nlog配置文件 #region Swagger
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "ApiHelp V1");
});
#endregion app.UseMvc();
}

Configure

5、结果

 

当我们启动网页的时候,默认打开如下

把api/value 换成swagger

为了达到跑程序就默认打开swagger,需要去修改launchSetting.json

把launchUrl 换成Swagger

 "profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "swagger",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},

launchSetting.json

跑下程序可以看到默认页已经变成swagger了~

7.接口说明

点击项目属性,生成XML文档

同样的存放实体类的类库也生成XML文档

注意~两个XML文档需在同一bin路径下

给控制器添加说明

/*用标红的方式给控制器添加注解*/

/// <summary>
/// 登录
/// </summary>
/// <returns></returns>
[Route("Login")]
[HttpGet]
public ResponseMessage Login()
{

  return new ResponseMessage
  {
    Code = 0,
    Message = "123",
    Data ="我是结果"
  };

}

  /// <summary>
/// 通用返回信息类
/// </summary>
public class ResponseMessage
{
/// <summary>
/// 操作结果Code
/// </summary>
public int Code { get; set; }
/// <summary>
/// 返回信息
/// </summary>
public string Message { get; set; }
/// <summary>
/// 返回数据集合
/// </summary>
public object Data { get; set; } }

返回类

然后要去修改Startup类中的ConfigureServices方法

public void ConfigureServices(IServiceCollection services)
{ services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); #region 配置Swagger
services.AddSwaggerGen(c =>
{
#region 顶部基础信息 c.SwaggerDoc("v1", new Info
{
Version = "v1.1.0",
Title = "WebAPI",
Description = "API帮助文档",
TermsOfService = "None",
Contact = new Swashbuckle.AspNetCore.Swagger.Contact { Name = "NinaMua", Email = "791016081@qq.com", Url = "http://www.cnblogs.com/NinaMua" }
});
#endregion #region 添加读取注释服务
//添加对控制器的标签(描述)通过对SwaggerDocTag添加备注
//c.DocumentFilter<SwaggerDocTag>();
var basePath = AppDomain.CurrentDomain.BaseDirectory; var apiXmlPath = Path.Combine(basePath, "TestApi.xml");
if (System.IO.File.Exists(apiXmlPath))
c.IncludeXmlComments(apiXmlPath, true);//控制器层注释(true表示显示控制器注释) var entityXmlPath = Path.Combine(basePath, "TestEntity.xml");
if (System.IO.File.Exists(entityXmlPath))
c.IncludeXmlComments(entityXmlPath);//实体类注释
#endregion });
#endregion }

ConfigureServices

跑下程序看看

 8 接口权限

需在中间件中添加权限的东西~

   public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); #region 配置Swagger
services.AddSwaggerGen(c =>
{
#region 顶部基础信息 c.SwaggerDoc("v1", new Info
{
Version = "v1.1.0",
Title = "WebAPI",
Description = "API帮助文档",
TermsOfService = "None",
Contact = new Swashbuckle.AspNetCore.Swagger.Contact { Name = "NinaMua", Email = "791016081@qq.com", Url = "http://www.cnblogs.com/NinaMua" }
});
#endregion #region 权限验证信息 //添加一个必须的全局安全信息,和AddSecurityDefinition方法指定的方案名称要一致
var security = new Dictionary<string, IEnumerable<string>> { { "Bearer", new string[] { } } };
c.AddSecurityRequirement(security); c.AddSecurityDefinition("Bearer", new ApiKeyScheme
{
Description = "格式|Bearer {token}",
Name = "Authorization",//jwt默认的参数名称
In = "header",//jwt默认在请求头中存放Authorization信息
Type = "apiKey"
}); #endregion #region 添加读取注释服务
//添加对控制器的标签(描述)通过对SwaggerDocTag添加备注
//c.DocumentFilter<SwaggerDocTag>();
var basePath = AppDomain.CurrentDomain.BaseDirectory; var apiXmlPath = Path.Combine(basePath, "TestApi.xml");
if (System.IO.File.Exists(apiXmlPath))
c.IncludeXmlComments(apiXmlPath, true);//控制器层注释(true表示显示控制器注释) var entityXmlPath = Path.Combine(basePath, "TestEntity.xml");
if (System.IO.File.Exists(entityXmlPath))
c.IncludeXmlComments(entityXmlPath);//实体类注释
#endregion });
#endregion }

ConfigureServices

修改完之后运行程序,发现在接口后多了一个小锁

点击那个锁弹出界面如下

先就这样把~~权限之后在搞把~

.net core 2.1 Swagger 配置的更多相关文章

  1. .net core web api swagger 配置笔记

    参考网址: --配置步骤见如下链接https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/web-api-help-pages-using-swa ...

  2. asp.net core 一个中小型项目实战的起手式——Swagger配置

    交流群:863563315 一.Swagger是什么 Swagger 是一款RESTFUL接口的.基于YAML.JSON语言的文档在线自动生成.代码自动生成的工具. 二.如何在项目中加入Swagger ...

  3. 《Asp.Net Core3 + Vue3入坑教程》-Net Core项目搭建与Swagger配置步骤

    简介 <Asp.Net Core3 + Vue3入坑教程> 此教程仅适合新手入门或者前后端分离尝试者.可以根据图文一步一步进操作编码也可以选择直接查看源码.每一篇文章都有对应的源码 教程后 ...

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

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

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

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

  6. 一、Swagger配置

    一.Swagger配置 1.注解不显示 SwaggerConfig文件下   //c.IncludeXmlComments(GetXmlCommentsPath()):  内下面添加: c.Inclu ...

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

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

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

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

  9. Ocelot网关统一查看多个微服务asp.net core项目的swagger API接口

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 一.准备 前提需要下载安装consul,项目需要懂添加swagger 统一在网关中配置多个微服务的swagger,需要用到服务注册 ...

随机推荐

  1. SVN重新定位操作流程

    因服务器其他系统需要SVN原来使用的443端口无法继续使用需要更换,服务器SVN端口已更新为8443,现将个人电脑SVN文件夹路径重新定位流程展示如下: 确定即修改成功!

  2. 一步一步解决centos6.5配置无线网卡的问题

    1.配置本地yum源 [local] name=local baseurl=file:///mnt/cdrom enable=1 gpgcheck=0 2.安装libnl rpm -ivh /mnt/ ...

  3. [ASP.NET Core 3框架揭秘] 跨平台开发体验: Windows [中篇]

    我们在<上篇>利用dotnet new命令创建了一个简单的控制台程序,接下来我们将它改造成一个ASP.NET Core应用.一个ASP.NET Core应用构建在ASP.NET Core框 ...

  4. Nginx 安装、配置及相关介绍

    一.前言 Nginx是一个高性能的HTTP和反向代理服务器,由俄罗斯人开发的,第一个版本发布于2004年10月4日.是一款轻量型的Web服务器,其特点是占有内存少,并发能力强,对负载均衡等提供了非常方 ...

  5. Hack the Breach 2.1 VM (CTF Challenge)

    主机扫描: ╰─ nmap -p- -A 192.168.110.151Starting Nmap 7.70 ( https://nmap.org ) at 2019-08-29 09:48 CSTN ...

  6. 深入了解angularjs中的$digest与$apply方法,从区别聊到使用优化

     壹 ❀ 引 如果有人问,在angularjs中修改模型数据为何视图会同步更新呢,我想大多数人一定会回答脏检查(Dirty Checking)相关概念.没错,在angularjs中作用域(scope) ...

  7. IT兄弟连 HTML5教程 响应式布局实例

    在学习Media Queries模块前,先通过一个响应式布局实例来了解一下响应式布局和Media Queries模块的简单应用.在本例中,使用HTML5的结构元素定义了5个盒子.当浏览器窗口尺寸不同时 ...

  8. 东芝MCU实现位带操作

    位带操作简介 位带操作的概念其实30年前就有了,那还是 8051单片机开创的先河,如今ARM CM3 将此能力进化,可以说,这里的位带操作是8051 位寻址区的威力大幅加强版.即如果要改写某个寄存器的 ...

  9. Python高级特性——列表生成式(list Comprehensions)

    List Comprehensions 即列表生成式,是Python内置的强大的用来生成列表list的生成式. 简单菜: >>> l = list(range(2,13)) > ...

  10. 微信小程序-强制手机端更新

    小程序的更新机制 开发者在管理后台发布新版本的小程序之后,如果某个用户本地有小程序的历史版本,此时打开的可能还是旧版本.微信客户端会有若干个时机去检查本地缓存的小程序有没有更新版本,如果有则会静默更新 ...