V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
yanchunhao58001
V2EX  ›  Go 编程语言

Vgo(基于 Gin 开发的开源服务端框架)[20240909 更新]增加表单验证器(结合 Map 和 Struct)、自定义翻译,使用 json 定义翻译字典

  •  
  •   yanchunhao58001 · 10 天前 · 736 次点击

    Vgo

    介绍 📖

    Vgo 是一款基于 Gin 开发的开源服务端框架。

    • 使用了 Redis 、Mysql 、JWT 、队列、等技术栈。
    • 比较适合 Golang 初学者作为学习项目学习。
    • 当前框架内实现了基本的 Rbac 权限管理(使用 casbin )、队列、websocket 、文件日志等功能。
    • 后续将陆续增加更多功能,欢迎大家共同参与进来。
    • 本项目主要是为了学习 Golang 而开发的,所以代码中难免有不足之处,还请大家多多包涵。

    代码仓库 ⭐(记得 Star⭐)

    安装使用步骤 📔

    • 下载:
    git clone -b https://github.com/xuewuzhiijngych/vgo.git
    
    • 安装:

    • 使用 Mysql8 ,导入根目录的 go_study.sql 文件。

    • 准备 redis

    • 修改根目录下的 config.yaml 文件,配置 Mysql 、Redis 、JWT 等信息。

    • 根目录的 asynq.yml 文件是配置 asynq 命令工具的,不使用,忽略即可。

    • 执行以下命令安装依赖包:

    go mod tidy
    
    • 运行:
    go run main.go
    

    项目目录 📚

    Vgo
    ├─ app                        # Vite 配置项
    ├─ AdminUser                  # 模块
    │  ├─ Bapi                    # Bapi 后台接口
    │  ├─ Api                     # Api 前台接口
    │  ├─ Model                   # Model 模型
    │  ├─ Router                  # Router 路由
    ├─ bootstrap                  # 框架启动文件
    ├─ core                       # 框架核心文件
    │  ├─ ...                     # 后续出详细介绍(亦可以自己通过源码了解)
    ├─ job                        # 队列
    ├─ route                      # 路由
    ├─ storage                    # 日志或静态资源
    │  ├─ logs                    # 日志
    ├─ asynq.yml                  # asynq 配置文件
    ├─ config.yaml                # 框架配置文件
    

    前台使用 🌎

    功能

    代码生成 🏢

    • 开发时 Go 版本:go version go1.22.5 windows/amd64
    • 版本兼容未测试,预想问题不大。
    • 生成基本增删改查的 golang 代码,可使用命令:
    • Curd:
    go run vTools/vTools.go --method=Curd --module=Product --note=产品
    
    • 执行代码后,会在 app 目录下生成一个 Product 模块,里面包含了增删改查的相关代码。
    • 随后需要自己在根目录 route/router.go 文件中注册路由。 [后期实现自动注册]

    权限管理 🔐

    • 基于 casbin 实现的权限管理,可实现用户角色、角色权限、用户权限等多种权限控制。
    • 具体使用方法请参考 VgoAdmin 项目。

    Map 结合模型验证 🏭

    • 见 app/User/Api/User.go 的 Register 方法

    自定义翻译器 📝

    • 翻译文字定义在根目录 lang 下
    • 使用:
    trans.Trans("手机号不能为空", ""),
    
    • 具体见:app/User/Api/User.go 的 Register 方法

    后续计划 🔮

    • 后续将陆续增加更多功能,欢迎大家共同参与进来。
    • 如有任何问题,请联系作者:[email protected]
    1 条回复    2024-09-09 17:35:17 +08:00
    liuyunlong
        1
    liuyunlong  
       10 天前
    很不错的项目,适合学习 go
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5540 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 02:54 · PVG 10:54 · LAX 19:54 · JFK 22:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.