Learn.Archives/Learn.Archives.API/Program.cs

67 lines
1.7 KiB
C#

using Learn.Archives.Core.Common;
using Microsoft.OpenApi.Models;
using System.Text.Encodings.Web;
using System.Text.Unicode;
using Learn.Archives.Core.Common.Expand;
using Mapster;
using System.Text.Json;
using Learn.Archives.API.Expand;
using System.ComponentModel;
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddLogging(loggingBuilder =>
{
loggingBuilder.ClearProviders(); // 清除默认的日志提供程序
loggingBuilder.AddConsole(); // 添加控制台日志提供程序
loggingBuilder.SetMinimumLevel(LogLevel.Warning); // 设置最小日志级别为 Warning
});
builder.Services.AddControllers(options =>
{
// 全局模型赋值默认值 和 统一返回格式处理
options.Filters.Add<HttpLogAttribute>();
})
.AddJsonOptions(options =>
{
options.JsonSerializerOptions.Encoder = JavaScriptEncoder.Create(UnicodeRanges.All);//中文转换时不使用Unicode
options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;// 默认小驼峰 null 大驼峰
});
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerExpand("学校档案系统");
builder.Configuration.AddAppConfig(args);
builder.Services.AddPermissionAuthentication();
builder.Services.AddSqlSugarExpand();
builder.Services.AddRedisExpand();
builder.Services.AddCorsExpand();
builder.Services.AddMapster();
builder.Services.AddLiveUserInfoExpand();
builder.Services.AddHttpClient();
builder.Services.AddHttpContextAccessor();
var app = builder.Build();
AppCommon.Services = app.Services;
app.UseMiddleware<BasicAuthMiddleware>("Swagger");
app.UseSwagger();
app.UseSwaggerUI();
app.UseRouting();
//自定义 应用
app.UseCorsExpand();
app.UseAuthorization();
app.UseSqlSugarExpand();
app.MapControllers();
app.Run();