现在的admin都是带有非常复杂的前端UI的项目, django是因为有内置模板引擎+ORM的加持才能做到.
大部分的go框架,比如gin是不带orm和模板引擎的,所以在这种情况下是比较难出一个让大家一起信服的admin后台的.
以下是2023-08-17更新:
我们基于这个技术,实现了一个headless cms restsend/restcontent 还有很多文档还没写
但是确实基于admin的机制实现了一个cms
给你们看看图
过程中遇到了很多问题,主要是go的反射能力差点,导致数据转化容易出现问题
不过至少能回答问题,我们基于go实现了一个高定制能力的admin后台
有兴趣可以去了解看代码和提issue
以下是2023-07-05更新:
我们在项目开发过程中,基于gorm封装了一个简单的CURD的接口,然后发现项目发布后,仍然需要做一个Admin后台,也考虑过用 vue实现一个admin面板,但是发现项目多了之后,vue的项目就很难复用,很多衍生的项目只是想要定制某个数据或字段的UI,每个项目都clone UI反而是一个负担,没有把go的包管理优势用起来。
于是我们参考Django设计了一个新的Admin机制,基于gorm+gin 实现了一个可以扩展UI和功能。我们大概有5-6个项目依赖了这个基础库,每个项目可以定制自己的UI控件和显示的布局,整体尽量复用基础的代码库
考虑到admin的UI是可以比较固定流程,并且项目之间复用要求比较高,用Alpine做了一个简单的尝试,UI我们没有选择用VUE。
UI开发不需要学习npm/vue/vite这些对后端工程师不友好的知识技能,缺点就是前端开发体验倒退了,算是一个尝试吧。 代码是开源的,欢迎大家来star或者提issue, 后续我们的headless cms也会开源
给你们看看效果: