using Microsoft.EntityFrameworkCore;
using Newtonsoft.Json.Serialization;
using System.Configuration;
using WebAPIStudio.Config;
using WebAPIStudio.Models;
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
var config = new ConfigurationBuilder()
.AddInMemoryCollection() //将配置文件的数据加载到内存中
.SetBasePath(Directory.GetCurrentDirectory()) //指定配置文件所在的目录
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) //指定加载的配置文件 --划重点..记得始终复制
.Build(); //编译成对象
builder.Services.AddDbContext<ReadingContext>(opt =>
{
string connectionString = builder.Configuration.GetConnectionString("DefaultConnection");
var serverVersion = ServerVersion.AutoDetect(connectionString);
opt.UseMySql(connectionString, serverVersion)
.EnableSensitiveDataLogging()
.EnableDetailedErrors();
});
builder.Services.AddControllers().AddNewtonsoftJson(options =>
{
//设置json返回格式
options.SerializerSettings.ContractResolver = new DefaultContractResolver();
//设置日期格式
options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";
});
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen(options =>
{
//设置对象类型参数默认值
options.SchemaFilter<DefaultValueSchemaFilter>();
//添加swagger注释
var file = Path.Combine(AppContext.BaseDirectory, "WebAPIStudio.xml");
options.IncludeXmlComments(file, true);
options.OrderActionsBy(o => o.RelativePath);
});
//添加跨域
builder.Services.AddCors(options =>
{
options.AddPolicy("CorsPolicy", opt => opt.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod());
});
var app = builder.Build();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
//使用跨域策略
app.UseCors("CorsPolicy");
app.Run();
.net Core Program.cs配置跨域策略设置json返回格式设置日期格式
本文详细介绍了如何在ASP.NETCore应用中配置DbContext以连接MySql数据库,使用Newtonsoft.Json.Serialization处理JSON格式,以及集成Swagger和OpenAPI注解以实现API文档和跨域访问。
摘要由CSDN通过智能技术生成