我们做的是前后端完全分离的一个博客系统,先把API接口开发完再进行web的开发
项目使用到的技术
项目框架:ASP.Net Core 2.2 Web API
ORM:Entity Framework
数据库引擎:SQL SERVER 2017
前端框架:BootSharp
权限验证:基于 Jwt 的角色权限验证
创建Web项目和创建API项目
![](https://img.haomeiwen.com/i5101539/27826fb38a5f5888.png)
![](https://img.haomeiwen.com/i5101539/39acc6a409d8fdaf.png)
![](https://img.haomeiwen.com/i5101539/4e767be8d4686917.png)
创建BlogIService和BlogService和Model和BlogTools类库
![](https://img.haomeiwen.com/i5101539/297e0df22730f7f1.png)
项目大体框架
Blog:前端项目(与用户的交互,包含各种表单)
BlogApi:接口项目
BlogTool:工具类
IService:接口服务
Service:实现接口方法(与数据库访问交互)
![](https://img.haomeiwen.com/i5101539/753dd55256151399.png)
修改Startup.cs文件,在Startup.cs类中,有两个方法ConfigureServices和Configure,在ConfigureServices方法中,我们将添加数据库字符串连接,通过依赖注入的方式添加到IServiceCollection 容器中,集成swagger(可视化的UI接口页面展示)
需要添加的组件:Autofac,Swagger
Swagger的添加与使用转移至另一篇文章NetCre集成Swagger这里我就不多说了
![](https://img.haomeiwen.com/i5101539/043c471dad8c2316.png)
在appsettings.json文件中添加数据库字符串连接
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*",
"ConnectionStrings": {
"SqlServerConnection": "Server =.;Database =Blog;User ID =sa;Password =1234@qwer;Trusted_Connection = False;"
}
}
创建数据库表User用户表,
ID:自增主键
UserName:用户名
Password:密码采用MD5加密
这里就随便写两三个主要字段,后期优化再加头像性别年龄等字段
![](https://img.haomeiwen.com/i5101539/63d96aff982f3257.png)
创建Model
![](https://img.haomeiwen.com/i5101539/f4208231d69e6442.png)
创建数据库上下文BlogDbContext.cs并添加表与Model实体类之间的映射
DbContext主要作为实体类和数据库之间的桥梁,负责与数据的交互
需要添加的组件 EntityFramewordCore
namespace Service
{
public class BlogDbContext:DbContext
{
public BlogDbContext(DbContextOptions<BlogDbContext> options) : base(options) {
}
public DbSet<User> User { get; set; }
}
}
在IService项目下添加IUserService.cs接口
并在Service项目下创建UserService.cs实现IUserService里的所有方法
![](https://img.haomeiwen.com/i5101539/dcbfff0b33b0ecd0.png)
![](https://img.haomeiwen.com/i5101539/4f6080e808d116c9.png)
在API中创建UserController.cs 构造函数中注入IUserService对象 编写方法返回json数据
![](https://img.haomeiwen.com/i5101539/7694ece7d3f719ad.png)
启动API项目 在路径后面添加/swagger即可打开接口UI界面
![](https://img.haomeiwen.com/i5101539/6253b3a1ea7e4207.png)
测试
![](https://img.haomeiwen.com/i5101539/384b45e1d7f9f8bf.png)
![](https://img.haomeiwen.com/i5101539/ca6a4cbe08d70b1e.png)
项目整体架构
![](https://img.haomeiwen.com/i5101539/8813520e574529a9.png)
网友评论