using BarCode.Web.Api; using BarCode.Web.Domain.Options; using BarCode.Web.Repositories.DependencyInjection; using Microsoft.AspNetCore.Hosting; using Microsoft.EntityFrameworkCore; using Microsoft.OpenApi.Models; using Swashbuckle.AspNetCore.SwaggerUI; using System.Configuration; using System.IdentityModel.Tokens.Jwt; var builder = WebApplication.CreateBuilder(args); // Add services to the container. JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear(); var option = builder.Configuration.GetSection("AppOptions").Get(); var option_soa = builder.Configuration.GetSection("SoaOptions").Get(); var isDevelopment = builder.Configuration.GetSection("IsDevelopment").Get(); var serverVersion = new MySqlServerVersion(new Version(8, 0, 18)); //数据库注入 builder.Services.AddApp(builder.Configuration, isDevelopment, builder => { builder.AddDbContext( opt => { opt.UseMySql(option.DBConnectionString, serverVersion); }); }); builder.Services.AddControllers(options => { options.Filters.Add(); }); var app = builder.Build(); // Configure the HTTP request pipeline. // Swagger中间件 if (isDevelopment) { app.UseSwagger(); // SwaggerUI app.UseSwaggerUI(c => { c.SwaggerEndpoint($"/swagger/v1/swagger.json", "BarCode-Api"); c.RoutePrefix = string.Empty; c.DocExpansion(DocExpansion.None); }); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseCors("AllowAllOrigin"); //统一异常处理中间件 app.UseMiddleware(); app.UseMiddleware(); //app.UseAuthorization(); app.MapControllers(); app.Run();