CSFramework.WebApi服务端处理流程与机制
CSFramework.WebApi服务端开发框架
WebApi后台框架
WebApi框架
原创软件@csframework.com
CSFramework.WebApi服务端处理流程与机制
控制器 (Controllers)
序 | 控制器 | 名称 | 路由 | 说明 |
1 | DoController | 通用接口控制器 | api/do | 提供通用接口,支持数据操作、系统维护、系统登录等客户端请求。 |
2 | GateController | 系统登录控制器 | api/gate | 用户登录、登出。 |
3 | FileController | 文件管理控制器 | user/file | 用户文件存储,支持大文件上传和下载。 |
4 | ImageController | 图片资源控制器 | share/image | 用户图片资料,支持图片上传和下载。 |
5 | SystemController | 系统维护控制器 | admin/system | 后台数据管理,缓存数据管理,系统管理。 |
命令处理程序 (Commands)
命令处理机制是CSFramework.WebApi后端开发框架采用的最新设计模式,本质上命令就是业务逻辑层。Api接口是暴露给客户端访问的端点(Endpoint),假设我们要设计一个含有几百个功能的大型系统,是不是要设计数百个Api接口?用命令模式可以解决这个问题,设计一个通用的接口来处理所有客户端的请求,然后用编号区分具体功能,比如编号80100代表客户订单,80200代表采购订单。服务端接收到请求后,通过命令工厂和编号创建对应的命令实例,对于三层架构来说,就是创建了具体的业务逻辑层。
IRequestCommand:标准命令接口,用于处理客户端提交的IUserRequest接口约束的数据格式。该命令设计简单,结构清晰,使用方便,但是服务端需要有具体的接口方法对应,因此导致服务端接口过多。
IRequestActionCommand:具体操作的命令接口,用于处理客户端提交的IUserRequestAction接口约束的数据格式。灵活性好,扩展性强,服务端只需要定义一个接口可以满足所有客户端请求。缺点是调用Api接口的第三方软件开发者需要知道每一个具体功能的接口编号,并且要求提交的数据也较多。
开发框架提供上述两种命令处理方式,极大满足软件项目的设计需求,开发人员还可以修改UserRequest模型以及Command类来扩展和定制特性功能。
数据访问层 (Data Access Layer)
数据访问层继承关系图
数据访问层(Data Access Layer)分为单表操作数据层和主从表操作数据层,开发人员根据功能区分来选择继承方式。若提交一张资料表,使用dalBaseBusiness基类的功能完全兼容dalBaseDataDict基类的功能。主从表操作数据层实现要复杂一点,比如更新主外键、自动生成流水号、事务处理等。
业务逻辑层(命令)将处理传递到数据访问层,首先根据数据库提供者创建数据库对象实例,因此开发框架支持跨数据库操作。然后通过SQL命令生成器分析ORM模型,自动生成三种SQL脚本(INSERT,UPDATE,DELETE)。最后调用数据库对象(IDatabase)的相关方法提交或获取数据。