一种全新的webapi框架C#webmvc初步介绍
这个框架分三部分,第一部分数据结构层,第二部分http和业务管理以及sql层,第三部分加密层和工具类。
数据结构层分key和数据长度定义
public class Auth
{
[Key]
public string Id { get; set; }
[MaxLength(50)]
public string Username { get; set; }
[MaxLength(50)]
public string Authtest { get; set; }
}
http和业务管理以及sql层
url定义
[Route("api/[controller]")]
[ApiController]
public class AuthController : ControllerBase
{
[HttpPost]
sql使用linq方式
List<Hack> hacklist = _coreDbContext.Set<Hack>().Where(i => i.Username ==userid).ToList();
中间还有日志定义
logger.Warn
startup.cs
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddMemoryCache();
services.AddSingleton<IQRCode, RaffQRCode>();
services.AddMvc();
services.Configure<PictureOptions>(Configuration.GetSection("PictureOptions"));
services.AddTransient<Microsoft.Extensions.Hosting.IHostedService, Job>();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
数据库连接选择以及实体类构建
public virtual DbSet<Auth> Auth { get; set; } //创建实体类添加Context中
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (!optionsBuilder.IsConfigured)
{
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json");
var config = builder.Build();
string database = config["database"];
if (database.Equals("mysql"))
optionsBuilder.UseMySQL(RSADecrypt("", config["source"]));
if(database.Equals("sqlserver"))
optionsBuilder.UseSqlServer(RSADecrypt("", config["source"]));
}
}
作者:蒋光洵