# skeleton **Repository Path**: workits/skeleton ## Basic Information - **Project Name**: skeleton - **Description**: Workits skeleton是通过 workits wk 命令行工具生成的项目骨架 - **Primary Language**: Go - **License**: MIT - **Default Branch**: master - **Homepage**: https://workits.cn - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2023-10-12 - **Last Updated**: 2024-10-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: workits ## README # 介绍 Workits skeleton是通过 [Workits toolx](https://gitee.com/workits/pkgs/tree/master/toolx/cmd/wk) 命令行工具生成的项目骨架, 可直接运行。将与 [Workits](https://gitee.com/workits/pkgs) 同步更新。 ## 什么是Workits Workits脚手架是采用golang开发, 可方便快捷的搭建和开发中后台项目接口。Workits已对在项目中常用的三方库进行了整合封装, 从而降低开发难度, 让开发人员更专注于业务逻辑的实现。并且基础代码均可通过自带的命令行工具生成, 轻松就能完成一套安全、可靠的业务系统接口。[了解Workits](https://gitee.com/workits/pkgs) ## 技术栈 - HTTP Router: github.com/gin-gonic/gin - ORM: [zorm](https://gitee.com/chunanyong/zorm) - 接口鉴权: JWT + Casbin - 数据校验: github.com/go-playground/validator - 定时任务: github.com/go-co-op/gocron + github.com/go-co-op/gocron-redis-lock - 文件存储: 七牛云Kodo - Excel处理: github.com/cuishu/excel - 基于zap的链路日志 - ... ## 项目结构 ``` go.mod main.go component ----------------- 该目录下的文件自动生成 |-- component.go |-- server_component.go --- 该文件可自行添加更多的中间件 config -------------------- 配置文件, 自动生成, 可根据业务需求进行添加 |-- application.yaml |-- captcha.yaml |-- casbin.yaml |-- jwt.yaml |-- server.yaml docs ---------------------- 该目录下的文件可通过 swag init --parseDependency 生成 |-- docs.go internal |-- app ------------------- 该目录下存放各个模块 | |-- demo -------------- demo模块 | |-- component ----- 该目录下的文件自动生成, 无需修改 | | |-- router | | |-- hello_router.go | | |-- router.go | |-- entity -------- 该目录下的文件自动生成, 根据业务逻辑自行修改 | |-- handler ------- 该目录下的文件自动生成, 根据业务逻辑自行修改 | | |-- hello_handler.go | |-- model --------- 该目录下的文件自动生成, 根据业务逻辑自行修改 | |-- hello_model.go |-- component ------------- 该目录下的文件自动生成 | |-- router | |-- demo_router.go | |-- router.go |-- config ---------------- 配置文件对应的结构体 | |-- application_config.go | |-- captcha_config.go | |-- casbin_config.go | |-- global.go ----- 该文件自动生成, 不要修改 | |-- jwt_config.go | |-- server_config.go ``` ## 使用说明 > 如果没有安装`wk`工具, 请移步 [Workits toolx](https://gitee.com/workits/pkgs/tree/master/toolx/cmd/wk) 参考安装 1. 获取/创建项目 ``` git clone https://gitee.com/workits/skeleton.git ``` 或 ``` wk create ${项目名称} ``` 2. 初始化项目(通过`wk create`创建的项目忽略此步骤) ``` wk init ``` 3. 修改配置`config/application.yaml`: - cache.addrs(redis地址+端口) - cache.password(redis密码) - db-conns.dsn(数据库连接字符串) > 其他配置根据自己情况自行修改 4. 运行项目 ``` wk run ``` 5. 添加自己的模块 ``` wk new ${模块名称} ``` 6. 根据数据库生成代码 ``` wk gen -m ${模块名称} -t ${数据库表名} ``` ## 数据库规范 ### 命名规范 > `表名`和`字段名`建议使用小写单词+下划线, 如: user_info ### 必要字段 ``` id: bigint 主健 created_at: datetime 创建时间 created_by: bigint 创建人ID updated_at: datetime 更新时间 updated_by: bigint 更新人ID deleted_at: datetime 删除时间 deleted_by: bigint 删除人ID ``` > 后续在`wk gen`命令中加入非标准表的支持 *详细文档后续更新...*