fgs记录行

vuePress-theme-reco fgs    2021 - 2022
fgs记录行 fgs记录行
主页
博客
  • 随笔
  • 总结文章
  • 技术笔记
  • 复盘
  • 技术笔记 未完成
标签
时间轴
关于
author-avatar

fgs

48

文章

46

标签

主页
博客
  • 随笔
  • 总结文章
  • 技术笔记
  • 复盘
  • 技术笔记 未完成
标签
时间轴
关于

基于schema的crud

vuePress-theme-reco fgs    2021 - 2022

基于schema的crud

fgs 2022-09-14 crud

介绍

schema

# 再解crud

基于我之前做的一个crud的东西(已经有了好多个版本了。。),从目前来讲,crud大概就几种,第一种是直接生成模板,本质上没有任何封装,这个二改起来当然是最容易的,但近乎必须要改,不可能直接用,第二种是极致的封装,比如一些低代码的东西,定了表结构就完事了,第三种介于两者之间,(可能)在路由处进行操作,如果是express就是通过配置生成中间价,如果是nest直接通过装饰器就好

我慢慢反应过来,无论是哪一种,都倾向于从表的结构去映射接口,无非就是映射与规则的区别,也就是一个表映射出一批接口,通过规则去筛选属性或者增加守卫等

实际上,先不说表结构不可能这么单纯,就说我一个前端,我关心表结构干什么呢。我其实真正关心的应该是切口的结构才对。

# 切口

所谓切口,可以是一个到一个模块的传输过程,比如调用组件时的props,这其中最重要的,就是前端向后端传数据这一切口(相当于这个切口中的一部分并不在我的管理范围),我至少应该基于这个去搞,由切口,去回过头,可选地映射前端结构和表结构,就是说,在有切口结构后,根据规则映射表单或者数据表,这个好处在于,基于数据表去映射的crud,一是规则极其难搞,先要映射到service,再要映射到controller的验证,再要映射中间件,最后映射前端表单,经过的环节有点太多了,二是一旦表结构不那么单纯的时候,整个东西什么都产生不了,基于接口去映射的话,到前端只需要一次映射,到中间件,数据表都只是一次(基于数据表那种也可以一次,但那样逻辑上就不是连接的),就算三种映射全都失败,接口本身,也是可以用于验证的

# 计划

我现在做了一个headless的json schema的东西,通过配置去制定映射的规则,有点像strapi,希望能一劳永逸解决这个问题

目前已经并入视图引擎,和属性表单引擎共同构成schema方案(现在先叫他服务规则引擎吧)