Skip to content

LinkinStars/baileys

Folders and files

NameName
Last commit message
Last commit date

Latest commit

1292c20 · Sep 4, 2023

History

65 Commits
Jun 24, 2021
Aug 12, 2022
Sep 27, 2020
Jun 24, 2021
Sep 4, 2023
Feb 24, 2022
Jun 24, 2021
Aug 9, 2022
Sep 18, 2019
Feb 7, 2023
Jun 24, 2021
Sep 4, 2023
Sep 4, 2023

Repository files navigation

Baileys 代码自动生成工具

Go Report Card

Feature

  • 读取数据库结构生成代码 (无法在线使用,因需要连接本地数据库)
  • 将 golang struct 转换为 Protocol Buffers
  • 将 json 转换为 golang struct

在线使用

读取数据库结构生成代码

修改配置文件,修改模板,点击生成,从数据库到代码的一键生成完成!从此 golang 的 web 开发也可以非常简单~ 正所谓,只有更快的拧螺丝,才有时间造火箭。

使用过程

  1. 下载 release 版本,或者 clone 下来你自己编译也可以
    https://github.com/LinkinStars/baileys/releases
  2. 解压后,修改 conf 文件夹下的配置文件conf.yml,主要是数据库配置和模板生成路径
  3. 修改 tpl 下的模板为你自己想要的样子,你可以先往后走,回来再修改
  4. ./baileys 启动
  5. 选择你需要的模板和表格,点击生成即可

PS: 修改配置文件,模板,数据库之后,只需要刷新页面即可重新加载,不需要重新启动

下面是默认模板最终生成的样子
https://github.com/LinkinStars/golang-web-template

命令行参数

-c 可以指定配置文件的目录 默认目录为 "./conf/conf.yml"
-p 可以指定端口号 默认端口为 "5272"

导入问题

生成文件的位置和 gopath 的设置会影响包的导入

模板问题

  • 模板文件夹 tpl 中 every 文件夹下的模板表示所有选中数据库的表均会一一去生成,比如一个表生成一个实体类等。
  • one 表示选中的表都会遍历一遍生成一个文件,比如遍历所有的表生成一个路由配置。
  • 模板中可以使用的引用字段如下
// TableData 表的数模型
type TableData struct {
    UpperCamelName string // 大驼峰名称
    LowerCamelName string // 小驼峰名称
    UnderlineName  string // 下划线名称
    Comment        string // 注释
    Fields         []FieldData
}

// FieldData 字段的数据模型
type FieldData struct {
    UpperCamelName string // 大驼峰名称
    LowerCamelName string // 小驼峰名称
    UnderlineName  string // 下划线名称
    Type           string // 对应go的类型
    Comment        string // 字段注释
    ORMTag         string // orm框架的标签
    ValTag         string // 验证框架的标签
}

命名问题

数据库中字段最好以下划线分割进行命名,这样能最正常的保证输出结果,如果以小驼峰命名可能出现奇怪的命名

自定义

主要数据库中拿到的参数这边都已经提供,如果需要可以直接从模板中引用。
如果参数不够用,比如你需要自定义标签等,那就只能fork过去自己改了。
如果你有写好的目标想要共享也可以提issue。

UPDATE

  • 1.0.0 支持生成XORM的标签,validate.v9的标签 [release]
  • 1.0.1 支持生成GORM的标签 [test]

将 golang struct 转换为 Protocol Buffers

使用很简单,只需要将 struct 复制到左边,然后点击转换即可

TODO

  • go struct 转 json
    • 支持嵌套结构体转换
    • 支持无 json tag 结构体自动生成 tag 后转换
    • 忽略 json tag 为 '-' 的情况
    • 忽略 json tag 中的 omitempty
  • json 转 go struct (使用 https://github.com/mholt/json-to-go 实现)
  • 首页页面展示优化
  • 自动生成 golang struct 和 pb 对象的转换 function
  • yaml 转 go struct (https://zhwt.github.io/yaml-to-go/)