ASP.NET CORE Swagger
Package

添加并配置Swagger中间件
将Swagger生成器添加到方法中的服务集合中Startup.ConfigureServices:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Info { Title = "WoorldCup Api", Version = "v1" }); // Set the comments path for the Swagger JSON and UI.
var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
c.IncludeXmlComments(xmlPath);
});
}
在该Startup.Configure方法中,启用用于为生成的JSON文档和Swagger UI提供服务的中间件:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
} app.UseSwagger(); app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "WoorldCup Api V1");
}); app.UseMvc();
}
Controller标记
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using WorldCup.Data; namespace WorldCup.Controllers
{
/// <summary>
/// 比赛相关
/// </summary>
[Route("api/[controller]")]
public class MatchController : Controller
{
private readonly WorldCupDBContext _worldCupDb;
private readonly IHostingEnvironment _hostingEnvironment;
public MatchController(WorldCupDBContext worldCupDb)
{
_worldCupDb = worldCupDb;
}
/// <summary>
/// 获取所有队伍
/// </summary>
/// <returns></returns>
[HttpGet("GetAllTeam")]
public IActionResult GetAllTeam(TodoItem item)
{
return Ok(new
{
Result = _worldCupDb.WorldCup_Country.ToList()
});
}
} public class TodoItem
{
public long Id { get; set; } [Required]
public string Name { get; set; } [DefaultValue(false)]
public bool IsComplete { get; set; }
}
}
效果

文档分组

services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Info { Title = "登录", Version = "v1" });
c.SwaggerDoc("v2", new Info { Title = "题目答案", Version = "v1" });
c.SwaggerDoc("v3", new Info { Title = "KPI", Version = "v1" });
var basePath = Microsoft.Extensions.PlatformAbstractions.PlatformServices.Default.Application.ApplicationBasePath;
var xmlPath = System.IO.Path.Combine(basePath, $"{nameof(CMBCampaign)}.xml");
c.IncludeXmlComments(xmlPath, true); //添加header验证信息
var security = new Dictionary<string, IEnumerable<string>> { { "Bearer", new string[] { } } };
//添加一个必须的全局安全信息,和AddSecurityDefinition方法指定的方案名称要一直,这里是Bearer;
c.AddSecurityRequirement(security);
c.AddSecurityDefinition("Bearer", new ApiKeyScheme()
{
Description = "JWT授权(数据将在请求头中进行传输) 参数结构:\"Authorization:Bearer {token}\"",
Name = SystemGlobalConst.Token,// jwt默认的参数名称 "Authorization",//
In = "header",//jwt默认存放Authorization信息的位置(请求头中)
Type = "apiKey"
});
});
if (Configuration.GetSection("ShowSwagger").Value == "true")
{
app.UseSwagger().UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "登录");
c.SwaggerEndpoint("/swagger/v2/swagger.json", "题目答案");
c.SwaggerEndpoint("/swagger/v3/swagger.json", "KPI");
});
}

微软文档:https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/web-api-help-pages-using-swagger?view=aspnetcore-2.1
ASP.NET CORE Swagger的更多相关文章
- ASP.NET Core Swagger接入使用IdentityServer4 的 WebApi
写在前面 是这样的,我们现在接口使用了Ocelot做网关,Ocelot里面集成了基于IdentityServer4开发的授权中心用于对Api资源的保护.问题来了,我们的Api用了SwaggerUI做接 ...
- asp.net core swagger使用及注意事项
Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.是一款RESTFUL接口的文档在线自动生成+功能测试软件.主要目的是构建标准的.稳定的.可重 ...
- Asp.Net Core: Swagger 与 Identity Server 4
Swagger不用多说,可以自动生成Web Api的接口文档和客户端调用代码,方便开发人员进行测试.通常我们只需要几行代码就可以实现这个功能: ... builder.Services.AddSwag ...
- 记Asp.Net Core Swagger 使用 并带域接口处理
引用作者原话:Asp.Net的WebApi中使用Swagger作为说明和测试的页面是非常不错的,比起WebApiTestClient来至少在界面上的很大的提升.但是使用Swagger时如果只是一般的控 ...
- Asp.Net Core Swagger 接口分组(支持接口一对多暴露)
开始之前,先介绍下swagger常用方法. services.AddSwaggerGen //添加swagger中间件 c.SwaggerDoc //配置swagger文档,也就是右上角的下拉 ...
- ASP.NET Core Swagger 显示接口注释
在Startup中 services.AddSwaggerGen(options => { options.SwaggerDoc("v1", new Info { Title ...
- 使用 Swagger 自动生成 ASP.NET Core Web API 的文档、在线帮助测试文档(ASP.NET Core Web API 自动生成文档)
对于开发人员来说,构建一个消费应用程序时去了解各种各样的 API 是一个巨大的挑战.在你的 Web API 项目中使用 Swagger 的 .NET Core 封装 Swashbuckle 可以帮助你 ...
- ASP.NET Core 中文文档 第二章 指南 (09) 使用 Swagger 生成 ASP.NET Web API 在线帮助测试文档
原文:ASP.NET Web API Help Pages using Swagger 作者:Shayne Boyer 翻译:谢炀(kiler) 翻译:许登洋(Seay) 对于开发人员来说,构建一个消 ...
- 在ASP.NET Core Web API上使用Swagger提供API文档
我在开发自己的博客系统(http://daxnet.me)时,给自己的RESTful服务增加了基于Swagger的API文档功能.当设置IISExpress的默认启动路由到Swagger的API文档页 ...
随机推荐
- Visual Studio VS2010统计代码行数
按CTRL+SHIFT+F (Find in files),勾上支持正则表达式,然后输入搜索内容: ^:b*[^:b#/]+.*$ 以上表达式的统计可做到:#开头和/开头或者空行都不计入代码量.如果需 ...
- OpenStack实践系列④计算服务Nova
OpenStack实践系列④计算服务Nova 3.6 Nova控制节点的部署创建服务的凭证,完成下列步骤: 创建nova用户,并加入到service项目中,赋予admin权限 [root@node1 ...
- Android应用开发中三种常见的图片压缩方法
Android应用开发中三种常见的图片压缩方法,分别是:质量压缩法.比例压缩法(根据路径获取图片并压缩)和比例压缩法(根据Bitmap图片压缩). 一.质量压缩法 private Bitmap com ...
- AES加解密程序的实现
AES加解密程序的实现正常情况,用户不能访问sys.dbms_crypto,需要DBA授权:grant execute on dbms_crypto to crm;建立加解密的PKG_AES包:CRE ...
- js——类型转换
总述 类型转换:显式.隐式(自动) 隐式转换是由编译器自动进行的,基本主要抽象操作有ToPrimitive, ToNumber, ToString, ToBoo ...
- 3、SourceTree通过PUTTY连接GitLab
一.生成公钥和私钥 使用命令行生成(两种生成方式选择一种即可) 1.安装SourceTree打开SourceTree,点击“命令行模式”. 2.输入如下命令生成key“example@example. ...
- Confluence 6 数据中心的缓存
在 Confluence 数据中心(集群)你需要分布缓存和每一个节点的缓存.在集群管理界面,将会定义分布缓存和节点本地缓存. 缓存配置文件存储在集群共享目录中的 home 目录下面. https:// ...
- 找到 Confluence 6 的日志和配置文件
找到 Confluence 的日志文件 这部分内容对 Confluence 的默认日志表现进行描述并且假设你没有对 Confluence 的默认日志配置进行修改.为了统一在不同平台中的日志输出,Con ...
- Confluence 6 配置避免管理员联系表单垃圾
你可以配置 Confluence 使用验证码(Captcha)来避免垃圾内容发送给 Confluence 管理员.有关管理员联系表单验证码的内容在全站验证码设置中进行配置,相关的文档请参考 Confi ...
- PHP实现网络Socket及IO多路复用
一直以来,PHP很少用于socket编程,毕竟是一门脚本语言,效率会成为很大的瓶颈,但是不能说PHP就无法用于socket编程,也不能说PHP的socket编程性能就有多么的低,例如知名的一款PHP ...