前言
虽然一直在更新代码,但是文章写的比较少了,因为一直再写webApi,涉及到图片可能比较少,而且一直再改,因为我也不太确定用哪种方法或者设计模式是最好的,个人定义是使用方便,快速开发,所以摒弃了很多复杂设计,用最简单但不简陋的方法设计出来。
系统架构
初始想法很简单,先做出来,然后在修改添加功能,直至完善,这是一个初始的设计思路,界面发送http请求到webApi,然后请求到控制器,控制器调用请求方法,请求方法调用请求数据,然后返回,中间有一步是通过控制器,将model转为viewModel,因为不能所有数据都符合要求,所以中间有一部转换,但是转换要求只能是已有数据或者不访问数据库的数据进行转换。
大概功能
这里先简单介绍一下,想要做出来的系统的大概功能需求
1、统一的请求和返回
通过约束统一httpHelper进行统一请求,请求过程中需要携带token进行授权访问,采用jwt方式进行授权,统一返回ResultMsg类,包含了
状态请求状态代码Status,
问题类型的简短、可读的摘要Title,
标识问题类型的 URI 引用Type,
TraceId,
此问题特定的可读说明,Detail
获取与此实例关联的验证错误Errors,
用于存放附加数据Data,
至于使用说明,后面文章会给出详细说明,主要通过状态代码来判断请求结果,基本设定于http状态代码相同。通过判断状态代码,来表示当前请求成功,失败后需要直接在前端提示出错误信息,包括解决方法和详细提示。还包含了请求等待时load状态等。
2、统一的Table表格
表格希望可以直接通过请求反射结果,来自动生成需要的表头,然后对应表头填充数据,表头需要有数据类型,通过类型来判断当前显示什么状态,第一步因为还没有设计权限,所以全部显示,后面想要通过权限控制来限制显示哪些数据,数据排序等。如icon则显示图标,img则显示图片等,有树状图还要显示树状图等。
对于表格的增删改查,需要通过不同的页面完成,我希望是通过统一的界面去完成,这样,只要model发生了变话,前端无需任何更改,自动反射出来,当然,可以通过权限来控制是否显示等。目前我是做到了这里,表格的增删改还没有做,后续会制作出来。
3、代码生成器
为什么要第三步做代码生成器,前边需要一个基础表格来提供思路,前面有了菜单管理,可以在菜单管理的基础上来进行生成,而且代码生成器出来以后,后面工作会快很多,并且越是统一基础的东西越应该先做,第三阶段会把代码生成器做出来,代码生成器希望可以直接通过model生成增删改查页面,因为我用的是代码先行,数据库是通过代码生成的,所以正常解决办法是通过删除数据库或者手动添加表来进行,我打算前期先这样解决,后面通过model生成对应的表,这样的话就可以专注与model和方法的定义,这样两步就可以生成一个可用页面。
4、用户、角色、用户组、角色组等页面
先用代码生成器生成对应页面,具体功能在根据实际的功能去修改,角色是用来定义角色权限,用户是对用户进行分组,角色是对角色进行分组,但是前期用户组和角色组不会有具体的功能,只是进行分组,只有角色可以赋予权限,用户使用权限,对于增删改查会自动检查是否有权限。角色有三个默认角色,
1、管理员,这个角色默认全部权限
2、未登录角色,为什么要添加这个角色,因为有的页面我想让没有登录的人可以看到,引导登录,这样比只能看登录页面要好很多,所以默认浏览的都是未登录角色的权限页面,
所有的用户会默认有这个角色,同样的权限可以不必分配
3、默认角色,如果注册账号或者没有分配角色,但是已经登录了,那么会在默认拥有该权限,该权限没有额外权限,如果没有手动分配,只有未登录一样的权限。
5、权限管理
对于权限这块是一个重点,但是还没想好怎么去做,大概就是无需开发者去主动控制,默认会检查权限,也无需额外的关心。
6、日志管理
7、网站配置
8、首页
计划0.1版本就这么多功能,满足基础需要看下情况