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文档页 ...
随机推荐
- nginx proxy_set_header设置、自定义header
先来看下proxy_set_header的语法 语法: proxy_set_header field value; 默认值: proxy_set_header Host $proxy_host; pr ...
- WINDOWS系统中常用网络命令及命令实例详解
一.查询DNS.IP,mac地址及DHCP服务的情况 二.查看ARP表:MAC地址与IP地址的映射表 三.查看共享资源 四.查看局域网内的主机名 五.查看用户列表 六.路由跟踪命令 七.查看共享资源 ...
- 修改Linux主机名与IP之间的映射关系
linux主机版本: Distributor ID: UbuntuDescription: Ubuntu 14.10Release: 14.10 一.修改linux主机名 1.使用hostname命令 ...
- ubuntu 16.04 登录后黑屏
进入登录界面后黑屏,重新更新英伟达的显卡,也么有起作用. 解决办法,进入登录界面时,进入终端(ctrl+alt+f1),然后修改 grub配置文件,使其每次重启时都检查文件 sudo vi /etc ...
- OTP
OTP 是 One Time Programable, 一次性可编程,一种存储器类型.顾名思义,只允许一次编程,后面无法修改. 在嵌入式系统当中,所有的代码和系统数据都是存储在flash芯片内部的,f ...
- 在eclipse中安装svn插件
1.下载SVN插件 下载地址:https://github.com/subclipse/subclipse 点击"Files" 2.安装 在eclipse 中点击菜单"w ...
- 51nod--1242 斐波那契数列第N项 (矩阵乘法优化)
题目: 1242 斐波那契数列的第N项 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 斐波那契数列的定义如下: F(0) = 0 F(1) = 1 F(n) ...
- 前端-----margin用法(盒子模型里补充)
margin塌陷问题 当时说到了盒模型,盒模型包含着margin,为什么要在这里说margin呢?因为元素和元素在垂直方向上margin里面有坑. 我们来看一个例子: html结构: <div ...
- python 前面几个单词含义
切片 str[start:end:step] start:从xxx开始 (startswith) end:切到xxx为止 (endswith) 不包括 字符串操作 .capitalize()# ...
- LuoGu P1352 没有上司的舞会
题目传送门 这可能是最简单的树形Dp了吧 对于每个人,要么他来,他的下属不来 要么他不来,他的下属爱来不来 于是设计状态: f[i][0/1]表示以i为根的子树中最大能达到的快乐值(i这个人选或者不选 ...