当前位置: 首页 > wzjs >正文

免费网站在线收看微网站 pc端网站开发

免费网站在线收看,微网站 pc端网站开发,上海互联网企业名单,化州市住房和城乡建设局网站版本控制 注意Swagger的配置,确保每个API版本都有对应的文档描述,否则Swagger UI可能不会正确显示不同版本。可能需要使用AddSwaggerGen的多次调用,或者使用循环来动态添加各个版本的文档。 创建版本控制枚举 ApiVersions.cs namespace D…

版本控制

注意Swagger的配置,确保每个API版本都有对应的文档描述,否则Swagger UI可能不会正确显示不同版本。可能需要使用AddSwaggerGen的多次调用,或者使用循环来动态添加各个版本的文档。

创建版本控制枚举

ApiVersions.cs

namespace Downey.Books.WebApi.SwaggerExt
{public enum ApiVersions{V1,V2,V3,V4,V5}
}

添加版本控制

#region 版本控制
typeof(ApiVersions).GetEnumNames().ToList().ForEach(version =>
{option.SwaggerDoc(version, new OpenApiInfo(){Title = $"Downey Api文档",Version = version,Description = $"通用版本的CoreApi版本{version}"});
});
#endregion

调用版本控制

app.UseSwagger();
app.UseSwaggerUI(option => 
{foreach(string version in typeof(ApiVersions).GetEnumNames()){option.SwaggerEndpoint($"/swagger/{version}/swagger.json", $"Downey 【{version}】版本");}
});

在控制器前添加版本标注

    /// <summary>/// 天气预报控制器/// </summary>[ApiController][Route("[controller]")][ApiExplorerSettings(IgnoreApi = false,GroupName = nameof(ApiVersions.V1))]public class WeatherForecastController : ControllerBase{...}

案例展现

在这里插入图片描述

Token传值

添加token传值

#region 支持token传值
{option.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme(){Description = "请输入token,格式为 Bearer xxxxxx(注意中间必须有空格)",Name = "Authorization",In = ParameterLocation.Header,Type = SecuritySchemeType.ApiKey,BearerFormat = "JWT",Scheme = "Bearer"});
}
#endregion

添加安全要求

	//添加安全要求option.AddSecurityRequirement(new OpenApiSecurityRequirement{{new OpenApiSecurityScheme{Reference = new OpenApiReference(){Type = ReferenceType.SecurityScheme,Id = "Bearer"}},new string[] { }}});

案例演示

在这里插入图片描述
在这里插入图片描述

Swagger升级扩展

在C#中,可以通过扩展方法和扩展属性来向现有的类添加新的方法和属性。扩展方法允许我们像调用实例方法一样调用它们,而扩展属性允许我们像使用普通属性一样使用它们。

this扩展

  1. 创建一个静态类,并将其标记为static。
  2. 在该类中创建一个静态方法,该方法将是我们要添加到现有类的扩展方法。方法的第一个参数必须使用this关键字标记,并且指定要扩展的类的类型。这个参数表示我们使用扩展方法的实例。
  3. 对于扩展属性,我们可以通过创建一个静态类和一个静态方法来模拟扩展属性的行为。在方法内部,可以通过方法的名称和参数列表来实现属性的访问和值的返回。

完整代码

using Microsoft.OpenApi.Models;namespace Downey.Books.WebApi.Utility.SwaggerExt
{/// <summary>/// Swagger扩展/// </summary>public static class CustomSwaggerExt{/// <summary>/// 配置Swagger/// </summary>/// <param name="services"></param>public static void AddSwaggerExt(this IServiceCollection services){services.AddEndpointsApiExplorer();services.AddSwaggerGen(option =>{#region 支持注释// xml文档绝对路径--读取控制器api生成的xml文件var file = Path.Combine(AppContext.BaseDirectory, "Downey.Books.WebApi.xml");// true : 显示控制器层注释option.IncludeXmlComments(file, true);// 对action的名称进行排序option.OrderActionsBy(o => o.RelativePath);#endregion#region 版本控制typeof(ApiVersions).GetEnumNames().ToList().ForEach(version =>{option.SwaggerDoc(version, new OpenApiInfo(){Title = $"Downey Api文档",Version = version,Description = $"通用版本的CoreApi版本{version}"});});#endregion#region 支持token传值{option.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme(){Description = "请输入token,格式为 Bearer xxxxxx(注意中间必须有空格)",Name = "Authorization",In = ParameterLocation.Header,Type = SecuritySchemeType.ApiKey,BearerFormat = "JWT",Scheme = "Bearer"});//添加安全要求option.AddSecurityRequirement(new OpenApiSecurityRequirement{{new OpenApiSecurityScheme{Reference = new OpenApiReference(){Type = ReferenceType.SecurityScheme,Id = "Bearer"}},new string[] { }}});}#endregion});}/// <summary>/// 中间件生效/// </summary>/// <param name="app"></param>public static void UseSwaggerExt(this WebApplication app){app.UseSwagger();app.UseSwaggerUI(option =>{foreach (string version in typeof(ApiVersions).GetEnumNames()){option.SwaggerEndpoint($"/swagger/{version}/swagger.json", $"Downey 【{version}】版本");}});}}
}

使用扩展

#region 配置Swagger
//CustomSwaggerExt.AddSwaggerExt(builder.Services);
builder.Services.AddSwaggerExt();
#endregionvar app = builder.Build();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{#region 使用Swagger//CustomSwaggerExt.UseSwaggerExt(app);app.UseSwaggerUI();#endregion
}
http://www.dtcms.com/wzjs/823184.html

相关文章:

  • wap网站还有能打开的吗直播代运营收费多少
  • 网站建设的描述哪种技术做网站容易论文答辩
  • 大岭山镇仿做网站wordpress 装修主题
  • 网站建设不包括以下哪个阶段东莞银行
  • 天津网站开发贴吧推广联盟平台
  • 如何看网站是否有做网站地图遵义网站建设网帮你
  • 九易建网站的建站流程宁波互联网企业排名
  • 电商网站改版方案自动化营销网站建设
  • 网站建设工作会议江苏省建设厅官方网站
  • 深圳有没有做网站的南通营销网站制作
  • 深圳网站建设公司模板商城网站建设方案
  • 有没有那个的网站关键词排名零芯互联排名
  • 做淘宝网店需要多少钱威海做网站优化
  • 网站注册页面怎么做数据验证做曖視頻网站
  • 我的网站怎么做南充市房产信息网
  • 长沙网站开发智做网站什么用
  • 高网站建设杭州网络科技设计中心
  • 数据库查询网站模板徐州领航装饰工程有限公司
  • 外包建站公司视频投票网站怎么做
  • 建站模板企业网站升级
  • 微网站开发平台 开源wordpress获取文章所有标签
  • 国家有规定必须做可信网站验证深汕特别合作区人口
  • 制作网站用什么代码万网域名管理登录
  • 响应式网站建设方案外汇平台 网站开发
  • 一次性筷子网站建设网页美工设计教案网页元素设计
  • 质量好网站建设商家科技网站制作
  • 宁波三盛网络网站建设黄页网址大全
  • 汽车之家网站是谁做的网站建建设
  • 南昌做网站的公司哪里好wordpress个人展示
  • 网站建设图片怎么动win2003 做网站服务器