前言

今年上半年正式开始学习C#语言,熟悉语法之后就直接开始学习.NetCore,并使用其完成了一个简单的Demo,一个日记系统。如今为了巩固所学知识,准备对此Demo进行一个重构,主要是对后端接口的重构,前端代码基本上有太多的变动,数据库此次采用的是sqlserver数据库。此文章用于记录自己的开发过程。

开发过程

  1. 基于Asp.Net Core3.1项目实战之项目分层(一)
  2. 基于Asp.Net Core3.1项目实战之Entity层实现(二)
  3. 基于Asp.Net Core3.1项目实战之数据层实现(三)
  4. 基于Asp.Net Core3.1项目实战之业务层实现(四)
  5. 基于Asp.Net Core3.1项目实战之依赖注入(五)
  6. 基于Asp.Net Core3.1项目实战之AutoMapper使用(六)
  7. 基于Asp.Net Core3.1项目实战之定义全局统一返回结果(七)
  8. 基于Asp.Net Core3.1项目实战之自定义异常及全局异常处理(八)
  9. 基于Asp.Net Core3.1项目实战之JWT(九)
  10. 基于Asp.Net Core3.1项目实战之引入rabbitmq(十)
  11. 基于Asp.Net Core3.1项目实战之引入redis(十一)

项目结构

整体后端项目采用经典的三层结构,具体如下图所示。
项目分层
这里简单介绍一下各层的意义:

  1. BLL 和 IBLL 是业务层,主要处理业务逻辑。
  2. DAL 和 IDAL 是数据访问层,主要就是对数据库进行操作。
  3. Entity 为模型层,用来定义数据模型。
  4. Bussiness 为业务模型层,用来存放一些业务实体,如DTO、枚举和自定义的异常等。

项目完成列表

以下为本次重构的CheckList,部分已经完成。

  • 此次数据库操作采用的EFCore,开发阶段全部是采用CodeFirst的方式来快速更新表结构。
  • 采用.NetCore自带DI,实现对整体解决方案批量注入。
  • 建立统一的接口返回格式,同时将全局使用ModelState,并将其返回结果和自定义返回格式统一。
  • 监听全局异常,并且自定义业务异常类,当抛出自定义异常的时候将具体的错误信息格式化为统一格式并返回,其他不识别的异常统一返回500内部错误。
  • 加入AutoMapper,并实现批量加载进ServiceCollection。
  • 完成基本业务代码。
  • 通过JWT来实现用户的登录。
  • 引入redis,将分类数据放置redis操作。
  • 引入rabbitmq, 在用户注册的时候加入邮箱验证的功能。

接口展示

1. 统一接口展示
所有的返回接口都只有三个字段,isSuccess标志是否成功,msg接口返回信息,data接口所返回的具体内容。
统一返回格式

2. 模型验证接口返回信息
此处为创建日接口,但是没有提供title字段,具体结果如下所示。
模型验证

3. 业务异常返回信息
当接口中抛出指定异常则将会被捕捉并且将具体异常信息返回指定格式,具体如下图所示。
接口异常信息

Logo

前往低代码交流专区

更多推荐