Go-sword 一键生成 CRUD 可视化 web 后台 V2.0.0 升级发布

2021-07-20 17:29:37 +08:00
 sunshinev

Go-sword(利刃) V2.0.0

一款基于 Go 语言的可视化 web 管理后台生成工具包 根据 MySQL 的表结构,创建 CRUD 的管理后台界面,开发者无需再重复手动的创建具有 CRUD 能力的页面,只需要点击按钮即可生成完整的管理后台

官网 https://sunshinev.github.io/go-sword-home/

官方文档更新可能不及时,请以 GIT README.md 为准

升级说明

v2.0.0

  1. 修改为以包引入的方式来启动工具+创建后端
  2. 修改了 stub 的业务逻辑代码
  3. 将所有的代码在生成前,使用 gofmt 进行格式化
  4. 缺点,需要重启项目后端项目才能生效

v1.0.0

  1. 单独的服务启动项目

Gosword 会在项目指定目录,释放一个完整的后台代码,包括前端、后端

重要

  1. 用来生成后端页面的数据表,要有 id,created_at,updated_at 三个必备字段

安装

go get -u  github.com/sunshinev/go-sword

配置文件说明

项目需要一个配置文件,采用 yaml 格式,除了数据库的配置,主要包括释放的目录、工具端口、后台端口

db:
  user: root
  password: '123456'
  database: test
  host: localhost
  port: 3306
root_path: admin22 # 后端项目释放的目录
tool_port: '8081'  # go-sword 代码生成工具的端口
server_port: '8082' # 生成的后台项目的端口

GIN 框架中的应用

  1. 在 Gin 项目中的 main 函数中,开启工具,import 代码包
package main

import (
	"log"

	"github.com/app/admin22/sword"
	"github.com/gin-gonic/gin"
	gosword "github.com/sunshinev/go-sword"
)

func main() {

	r := gin.Default()
	r.GET("/ping", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"message": "pong",
		})
	})
	// 日志
	log.SetFlags(log.Llongfile | log.Ldate)

	// 1. 开启工具->根据 sql 生成项目
	gosword.Init("config/go-sword.yaml").Run()

	// 原始 gin 项目
	_ = r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
}

使用gosword.Init加载配置文件,并且在项目中开启工具

gosword.Init("config/go-sword.yaml").Run()
  1. 后台创建成功后,加入sword.Run,使用另外一个端口开启后端项目
func main() {

	r := gin.Default()
	r.GET("/ping", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"message": "pong",
		})
	})
	// 日志
	log.SetFlags(log.Llongfile | log.Ldate)

	// 1. 开启工具->根据 sql 生成项目
	gosword.Init("config/go-sword.yaml").Run()

	// 2. 加载生成的项目->重新启动
	sword.Run("config/go-sword.yaml")

	// 原始 gin 项目
	_ = r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
}

2436 次点击
所在节点    程序员
9 条回复
duuu
2021-07-20 18:18:09 +08:00
demo 挂了
efaun
2021-07-20 19:05:08 +08:00
纯英文页面下面放个 QQ 群好违和,至少弄个 Twitter 吧,下面三个超链居然还是假的
ca1123
2021-07-20 22:17:37 +08:00
@efaun 我觉得 QQ 挺好的(*/ω\*)
ca1123
2021-07-20 22:43:40 +08:00
对了, 其它 SQL 数据库呢, 可以搞么?
ca1123
2021-07-20 22:46:20 +08:00
还有, 你这东西就是相当于一个 web 的 dbvisualizer 么?
kwanzaa
2021-07-21 00:07:26 +08:00
demo 502
cedoo22
2021-07-21 09:20:00 +08:00
就文档来说,感觉版本不像 2.0, 像是 0.2
airplayxcom
2021-07-21 10:39:35 +08:00
40MB ?
sunshinev
2021-07-21 15:58:35 +08:00
作者想说的话
Go-sword 其实提供了一种模式,这种模式借鉴于 Yii 框架的 GII 工具。在 GII 模式的基础上,与 VUE+iview2.0 进行融合,进而产出了 Go-sword 项目。
Go-sword 内部的代码包括前端、后端并非最优解,正如前面所说的,它本身提供了一种快速便捷的开发方式,如果开发者觉得这种模式有利于项目效率,可以 Fork 该项目,修改 stub 文件来满足自己的项目架构

回复几个问题:
1. 『还有, 你这东西就是相当于一个 web 的 dbvisualizer 么?』
他本身提供了快速创建 CRUD 的能力,因为 CURD 是大部分后台所常用的功能。
我们在使用的时候,需要进行思维发散,也就是说页面生成了,但是接口是可以写自定义业务逻辑的,也就是说相同的 LIST 列表接口,我可以读取其他依赖服务,或者组合其他数据,输出到列表页进行展示。

而数据的展示方式也不止 LIST 列表这一种模式,前端页面使用 iview 框架,所以 iview 的组件都可以移植到页面中使用


2. DEMO 挂了
已经重新上线了

3. 『纯英文页面下面放个 QQ 群好违和,至少弄个 Twitter 吧,下面三个超链居然还是假的』
有空多学习,少扯皮

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/790659

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX