一、.Net Core Minimai API
1、体积小,无需Api Controller
2、易编写,极简编程体验
3、简洁性,program搞定所有
创建完Web API后,打开Program.cs文件,把下面这段代码删掉,然后自己手写一个接口
以下是我们自定义接口的代码段
app.MapGet("/test", () =>
{
return "ok";
});
后续对我们的后端列表做一些服务的时候,全部都是通过这种方式去开发我们的API,这能极大的提高我们的开发效率。
二、SqlSuger的介绍与安装
1、官网地址:
介绍:SqlSugar ORM 5.X 官网 、文档、教程 - SqlSugar 5x - .NET果糖网
教学:SqlSugar&.NET6视频教程分享(含岗位内推) - 免费视频 - .NET果糖网
在项目中的依赖项中,打开管理NuGet包,搜索SqlSugerCore下载包即可
安装完成后创建一个User实体类,以供后续使用
三、通过SqlSugar实现Code First
1、根据数据库中的 字符串信息,动态的创建数据库
2、通过反射读取当前程序下的类,然后创建表
3、添加测试数据到数据库,来完成初始化
新建一个文件夹(Data),在下面创建一个我们所需要的辅助类(SqlSugarHelpers)
using System;
using System.Reflection;
using Api.Model;
using SqlSugar;
namespace Api.Data
{
public class SqlSugarHelpers
{
public static SqlSugarScope Db = new SqlSugarScope(new ConnectionConfig()
{
ConnectionString = "Data Source=DESKTOP-2DUF58Q\\SQLEXPRESS;Initial Catalog=Admin_Study;Persist Security Info=True;User ID=sa;Password=123456",
DbType = DbType.SqlServer,//数据库类型
IsAutoCloseConnection = true //不设置成true要手动close
},
db =>
{
//(A)全剧生效配置点,一般AOP和程序启动的配置扔这里面,所有上下文生效
//调试SQL事件,可以删掉
db.Aop.OnLogExecuting = (sql, pars) =>
{
Console.WriteLine(sql);//输出sql,查看执行sql 性能无影响
};
});
//初始化数据库
public static string InitDateBase()
{
try
{
//创建数据库
Db.DbMaintenance.CreateDatabase();
//创建表
string nspace = "api.Model";
//通过反射,反射当前程序集
Type[] ass = Assembly.LoadFrom(AppContext.BaseDirectory + "api.dll").GetTypes().Where(p => p.Namespace == nspace).ToArray();
Db.CodeFirst.SetStringDefaultLength(200).InitTables(ass);
//初始化数据
//添加数据之前先清空
Db.Deleteable<User>().ExecuteCommand();
List<User> list = new List<User>();
for(int i = 1;i <= 5; i++)
{
list.Add(new User()
{
Id = Guid.NewGuid().ToString(),
Name = "Tom" + i,
Date = DateTime.Now,
Address = "No.189,Grove St,Los Angeles",
Order = i
});
}
for (int i = 6; i <= 10; i++)
{
list.Add(new User()
{
Id = Guid.NewGuid().ToString(),
Name = "Tom" + i,
Date = DateTime.Now,
Address = "No.129,Grove St,Los Angeles",
Order = i
});
}
for (int i = 11; i <= 30; i++)
{
list.Add(new User()
{
Id = Guid.NewGuid().ToString(),
Name = "Tom" + i,
Date = DateTime.Now,
Address = "No.87,Grove St,Los Angeles",
Order = i
});
}
Db.Insertable(list).ExecuteCommand();
return "ok";
}
catch(Exception ex)
{
return ex.Message;
}
}
}
}
四、相关接口的实现
写完四个方法之后,回到program.cs里面就可以做一个实现了
app.MapGet("/test", () =>
{
return "ok";
});
app.MapGet("/codefirst", () =>
{
return SqlSugarHelpers.InitDateBase();
});
app.MapPost("/list", (Model req) =>
{
return SqlSugarHelpers.GetUsers(req);
});
app.MapPost("/add", (AddReq req) =>
{
return SqlSugarHelpers.Add(req);
});
app.MapPost("/edit", (User req) =>
{
return SqlSugarHelpers.Edit(req);
});
app.MapGet("/del", (string ids) =>
{
return SqlSugarHelpers.Del(ids);
});
app.Run();
record WeatherForecast(DateTime Date, int TemperatureC, string? Summary)
{
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
}