Blazor + Ant Design + .NET 5快速开发框架(7) webApi设计思路

前言

虽然一直在更新代码,但是文章写的比较少了,因为一直再写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版本就这么多功能,满足基础需要看下情况

项目地址

 

 

 

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值