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. 面试 3-5年Java开发后的感受

    在上周,我密集面试了若干位Java后端的候选人,工作经验在3到5年间.我的标准其实不复杂:第一能干活,第二Java基础要好,第三最好熟悉些分布式框架,我相信其它公司招初级开发时,应该也照着这个标准来面 ...

  2. OPCode 详解

    OpCode 操作码(Operation Code, OPCode):描述机器语言指令中,指令要执行某种操作的机器码 OPCode在不同的场合中通常具有不同的含义,例如PHP虚拟机(Zend VM). ...

  3. Power BI 的数据源及数据刷新

    Power BI 目前可以连接超过100种数据源,包含常见的各种数据库,文件,数据仓库,云等等. 不同的数据源支持不同的连接方式,通常来讲,Power BI 支持两种数据连接方式: 导入(import ...

  4. .netcore实现一个读写分离的数据库访问中间件

    在实际业务系统中,当单个数据库不能承载负载压力的时候,一般我们采用数据库读写分离的方式来分担数据库负载.主库承担写以及事务操作,从库承担读操作. 为了支持多种数据库我们先定义一个数据类型字典.key为 ...

  5. linux globbing文件名通配

    globbing:文件名通配 元字符: *:匹配任意长度的任意字符 ?:匹配任意单个字符 []:匹配指定范围内的任意单个字符 [a-z]或者[A-Z]或者[[:alpha:]]:匹配任意一个字母 [[ ...

  6. Javassist中文技术文档

    本文译自Getting Started with Javassist,如果谬误之处,还请指出. bytecode读写 ClassPool Class loader 自有和定制 Bytecode操控接口 ...

  7. Python 的 Geth 封装库 PyGeth

    PyGeth 是一个 Python 封装库,用来作为子进程运行 geth. 系统依赖 该库需要 geth 可执行文件. 安装 pip install py-geth 快速启动 运行连接到 mainne ...

  8. deepin镜像 mxlinux镜像 ubuntu镜像桌面版

    百度网盘https://pan.baidu.com/s/18HX4XgXRMXFho036tuP-Hw

  9. java.sql.SQLException: Unknown initial character set index '255' received from server. Initial client character set can be forced via the 'characterEncoding' property.解决方案

    解决方案: 首先查看数据库的版本号,删除旧的jar包,将mysql-connector-java.jar更换成对应版本号 同时在连接数据库的url后加上?useUnicode=true&cha ...

  10. HttpRunner学习3--extract提取数据和引用

    前言 在HttpRunner中,我们要想从当前 HTTP 请求的响应结果中提取参数,可以通过 extract 关键字来实现. 本人环境:HttpRunner V1.5.8 测试场景 在这里,我将以一个 ...