1016-.net core6.0 webapi 后端项目框架源码
【实例简介】
.net core 6.0 webapi Resful风格; 采用仓储 服务 接口的形式封装框架; 基于AOP切面的Redis缓存; 使用 Swagger 做api文档; 使用 Automapper 处理对象映射; 使用 AutoFac 做依赖注入容器,并提供批量服务注入; 支持 CORS 跨域; 封装 JWT 自定义策略授权; 接入国产数据库ORM组件 —— SqlSugar,封装数据库操作; 基于log4net的全局异常处理; 自定义全局消息返回格式; 可配合 Docker 实现容器化; 可配合 Jenkins 实现CI / CD; 可配合 Nginx 实现负载均衡;
【实例截图】
【核心代码】
var builder = WebApplication.CreateBuilder(args);
var ApiName = "Mag.Core.API";
//数据库配置
BaseDBConfig.ConnectionString = builder.Configuration.GetSection("AppSettings:ConnectionString").Value;
// Add services to the container.
builder.Services.AddControllers(options =>
{
options.SuppressAsyncSuffixInActionNames = false;
options.Filters.Add(typeof(GlobalExceptionsFilter));
options.Filters.Add(typeof(AppResultFilter));
})
.AddNewtonsoftJson(options =>
{
//忽略循环引用
options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
//不使用驼峰样式的key
options.SerializerSettings.ContractResolver = new DefaultContractResolver();
//设置时间格式
options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";
//忽略Model中为null的属性
//options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
//设置本地时间而非UTC时间
options.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Local;
})
.ConfigureApiBehaviorOptions(options => options.SuppressModelStateInvalidFilter = true);
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
//注册appsettings读取类
builder.Services.AddSingleton(new AppSettings(builder.Configuration));
//log日志注入
builder.Services.AddSingleton
//跨域服务配置
builder.Services.AddCors(options =>
{
options.AddPolicy("Cors", p =>
{
p.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader();
});
});
//注册swagger
builder.Services.AddSwaggerSetup();
//JWT安全验证
builder.Services.AddAuthorizationSetup();
//注册Redis
builder.Services.AddSingleton
//注入Autofac
builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory())
.ConfigureContainer
{
//调用程序集注册存入方法
builder.RegisterModule(new AutofacModuleRegister());
});
//注入AutoMapper
builder.Services.AddAutoMapper(typeof(CustomProfile));
var app = builder.Build();
// Configure the HTTP request pipeline.
//if (app.Environment.IsDevelopment())
//{
//}
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint($"/swagger/V1/swagger.json", $"{ApiName} V1");
//路径配置,设置为空,表示直接在根域名(localhost:8001)访问该文件,注意localhost:8001/swagger是访问不到的,去launchSettings.json把launchUrl去掉,如果你想换一个路径,直接写名字即可,比如直接写c.RoutePrefix = "doc";
c.RoutePrefix = "";
});
app.UseCors("Cors");
app.UseAuthentication();
app.UseAuthorization();
app.MapControllers();
app.Run();
发货方式
自动:在特色服务中标有自动发货的商品,拍下后,源码类 软件类 商品会在订单详情页显示来自卖家的商品下载链接,点卡类 商品会在订单详情直接显示卡号密码。
手动:未标有自动发货的的商品,付款后,商品卖家会收到平台的手机短信、邮件提醒,卖家会尽快为您发货,如卖家长时间未发货,买家也可通过订单上的QQ或电话主动联系卖家。
退款说明
1、源码类:商品详情(含标题)与实际源码不一致的(例:描述PHP实际为ASP、描述的功能实际缺少、功能不能正常使用等)!有演示站时,与实际源码不一致的(但描述中有"不保证完全一样、可能有少许偏差"类似显著公告的除外);
2、营销推广类:未达到卖家描述标准的;
3、点卡软件类:所售点卡软件无法使用的;
3、发货:手动发货商品,在卖家未发货前就申请了退款的;
4、服务:卖家不提供承诺的售后服务的;(双方提前有商定和描述中有显著声明的除外)
5、其他:如商品或服务有质量方面的硬性常规问题的。未符合详情及卖家承诺的。
注:符合上述任一情况的,均支持退款,但卖家予以积极解决问题则除外。交易中的商品,卖家无法修改描述!
注意事项
1、在付款前,双方在QQ上所商定的内容,也是纠纷评判依据(商定与商品描述冲突时,以商定为准);
2、源码商品,同时有网站演示与商品详情图片演示,且网站演示与商品详情图片演示不一致的,默认按商品详情图片演示作为纠纷评判依据(卖家有特别声明或有额外商定的除外);
3、点卡软件商品,默认按商品详情作为纠纷评判依据(特别声明或有商定除外);
4、营销推广商品,默认按商品详情作为纠纷评判依据(特别声明或有商定除外);
5、在有"正当退款原因和依据"的前提下,写有"一旦售出,概不支持退款"等类似的声明,视为无效声明;
6、虽然交易产生纠纷的几率很小,卖家也肯定会给买家最完善的服务!但请买卖双方尽量保留如聊天记录这样的重要信息,以防产生纠纷时便于送码网快速介入处理。
送码声明
1、送码网作为第三方中介平台,依据双方交易合同(商品描述、交易前商定的内容)来保障交易的安全及买卖双方的权益;
2、非平台线上交易的项目,出现任何后果均与送码网无关;无论卖家以何理由要求线下交易的(如:要求买家支付宝转账付款的,微信转账付款的等),请联系管理举报,本平台将清退卖家处理。
AFSIM 2.9 源码+直接运行版
王多隆老师398付费视频课程《三分钟洞察需求和创造需求》...
jnpf5.0源码单体 已经检测过 可以直接拍 代码没问题...
朝夕教育WPF+上位机+工业互联,9大模块 带源码...
同城搭子直播交友系统搭建搭子群系统自动付费进群小程序操作教程...
智创云享V3知识付费系统小程序源码流量主源码支持分站...
张峻齐线下实战班全套课程高级交易员K订单流合集,荃网蕞荃资源...
亿乐sup/亿乐社区/亿乐商城源码搭建/亿乐系统...
A16 登录器开源源码数据号
张至顺视频全集八部金刚功长寿功教程中医养生按摩电子版全套课程...