|
|
|
@ -2,6 +2,8 @@
|
|
|
|
|
|
|
|
|
|
using HttpClientStudy.Core.Utilities;
|
|
|
|
|
|
|
|
|
|
using Microsoft.OpenApi.Models;
|
|
|
|
|
|
|
|
|
|
//启动WebApi程序
|
|
|
|
|
AppUtility.StartWebApiProject();
|
|
|
|
|
|
|
|
|
@ -12,16 +14,79 @@ var builder = WebApplication.CreateBuilder(args);
|
|
|
|
|
builder.Services.AddControllers();
|
|
|
|
|
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
|
|
|
|
|
builder.Services.AddEndpointsApiExplorer();
|
|
|
|
|
builder.Services.AddSwaggerGen();
|
|
|
|
|
//配置Swagger
|
|
|
|
|
builder.Services.AddSwaggerGen(setup =>
|
|
|
|
|
{
|
|
|
|
|
#region 定义Swagger文档
|
|
|
|
|
//name参数即为SwaggerUI中SwaggerEndpoint方法参数中的{documentName}
|
|
|
|
|
//两者必须保持一致,否则异常
|
|
|
|
|
setup.SwaggerDoc(name: "v1", new Microsoft.OpenApi.Models.OpenApiInfo { Title = "HttpClient学习", Version = "第1版" });
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 包含xml注释
|
|
|
|
|
var xmlCommentFiles = System.IO.Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory, "HttpClientStudy.*.xml", System.IO.SearchOption.TopDirectoryOnly);
|
|
|
|
|
foreach (var xmlFile in xmlCommentFiles)
|
|
|
|
|
{
|
|
|
|
|
//includeControllerXmlComments参数:是否启用控制器上的xml注释
|
|
|
|
|
setup.IncludeXmlComments(filePath: xmlFile, includeControllerXmlComments: true);
|
|
|
|
|
|
|
|
|
|
setup.UseInlineDefinitionsForEnums();
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
#region 放置接口Auth授权按钮
|
|
|
|
|
|
|
|
|
|
setup.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
|
|
|
|
|
{
|
|
|
|
|
Description = "请输入带有Bearer的Token:Bearer {Token}",
|
|
|
|
|
|
|
|
|
|
//jwt默认的参数名称
|
|
|
|
|
Name = "Authorization",
|
|
|
|
|
|
|
|
|
|
//jwt默认存放 Authorization 信息的位置:此处为请求头中
|
|
|
|
|
In = ParameterLocation.Header,
|
|
|
|
|
|
|
|
|
|
//验证类型:此处使用Api Key
|
|
|
|
|
Type = SecuritySchemeType.ApiKey
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 指定方案应用范围
|
|
|
|
|
setup.AddSecurityRequirement(new OpenApiSecurityRequirement
|
|
|
|
|
{
|
|
|
|
|
{
|
|
|
|
|
new OpenApiSecurityScheme
|
|
|
|
|
{
|
|
|
|
|
Reference = new OpenApiReference
|
|
|
|
|
{
|
|
|
|
|
Id = "Bearer",
|
|
|
|
|
Type = ReferenceType.SecurityScheme
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
new List<string>()
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
#endregion
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
//启用数据注解
|
|
|
|
|
setup.EnableAnnotations();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
var app = builder.Build();
|
|
|
|
|
|
|
|
|
|
// Configure the HTTP request pipeline.
|
|
|
|
|
if (app.Environment.IsDevelopment())
|
|
|
|
|
app.UseSwagger();
|
|
|
|
|
app.UseSwaggerUI(setup =>
|
|
|
|
|
{
|
|
|
|
|
app.UseSwagger();
|
|
|
|
|
app.UseSwaggerUI();
|
|
|
|
|
}
|
|
|
|
|
setup.EnableDeepLinking();
|
|
|
|
|
setup.DisplayRequestDuration();
|
|
|
|
|
setup.ShowCommonExtensions();
|
|
|
|
|
setup.ShowExtensions();
|
|
|
|
|
setup.EnableFilter();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
app.UseAuthorization();
|
|
|
|
|
|
|
|
|
|