{"id":21968381,"url":"https://github.com/18211167516/go-gin-api","last_synced_at":"2025-04-24T07:14:46.446Z","repository":{"id":38336359,"uuid":"283380396","full_name":"18211167516/Go-Gin-Api","owner":"18211167516","description":"基于golang开源框架 gin封装的api框架","archived":false,"fork":false,"pushed_at":"2023-05-05T02:28:56.000Z","size":40432,"stargazers_count":84,"open_issues_count":5,"forks_count":19,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-24T07:14:39.246Z","etag":null,"topics":["casbin","gin","go","golang","gorm","jwt","rbac","swagger","viper","zap"],"latest_commit_sha":null,"homepage":"https://18211167516.github.io/Go-Gin-Api/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/18211167516.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-29T02:42:12.000Z","updated_at":"2025-03-17T02:11:49.000Z","dependencies_parsed_at":"2024-06-18T22:47:47.821Z","dependency_job_id":"40592b86-ff2e-48b6-89e5-8632eb98198d","html_url":"https://github.com/18211167516/Go-Gin-Api","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/18211167516%2FGo-Gin-Api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/18211167516%2FGo-Gin-Api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/18211167516%2FGo-Gin-Api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/18211167516%2FGo-Gin-Api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/18211167516","download_url":"https://codeload.github.com/18211167516/Go-Gin-Api/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250580747,"owners_count":21453537,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["casbin","gin","go","golang","gorm","jwt","rbac","swagger","viper","zap"],"created_at":"2024-11-29T13:54:20.118Z","updated_at":"2025-04-24T07:14:46.427Z","avatar_url":"https://github.com/18211167516.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Go-Gin-Api\n基于 Gin 进行模块化设计的 API 框架，封装了常用功能，操作简单，致力于进行快速的业务研发。比如，jwt 签名验证、zap 日志收集、panic 异常捕获、swagger 文档生成、viper 配置文件解析、gorm 数据库组件、v2.0支持后台管理、casbin权限管理可支持按钮级权限，使用Light Year Admin 模板、支持命令工具生成Model、初始化数据库 等等\n\n# 项目文档 \n\n[在线文档](https://18211167516.github.io/Go-Gin-Api/)\n[在线文章](https://juejin.cn/user/2313028196368445/posts)\n\n## 1 项目简介\n\n### 1.1 项目介绍\n\n个人爱好，业务编码，喜欢的给个star\n## 2 使用说明\n\n```\n- golang版本 \u003e= v1.16\n```\n1. 下载\n\n- 使用git克隆本项目\n```git\n    git clone https://github.com/18211167516/Go-Gin-Api.git\n```\n2.  cd到cmd目录，编译 然后执行cmd.exe initdb 当然了你要先创建数据库\n\n3. 登录后台\n\n```\n账号：admin\n密码：Admin123\n```\n4. 贡献指南\n   \n \n * issue 仅用于提交 Bug 或 Feature 以及设计相关的内容，其它内容可能会被直接关闭。\n * pull Request  请先 fork 一份到自己的项目下，不要直接在仓库下建分支。\n * commit 信息要以[文件名]: 描述信息 的形式填写，例如 README.md: fix xxx bug。\n * 确保 PR 是提交到 dev 分支，而不是 master 分支。\n * 如果是修复 bug，请在 PR 中给出描述信息。\n\n### 2.1 swagger自动化API文档\n\n#### 2.1.1 安装 swagger\n```bash\n# 启用 Go Modules 功能\ngo env -w GO111MODULE=on \n# 配置 GOPROXY 环境变量\ngo env -w GOPROXY=https://goproxy.io,direct\n\n# 使用如下命令下载swag\ngo get -u github.com/swaggo/swag/cmd/swag\n```\n\n#### 2.1.2 生成API文档\n\n```\nswag init\n```\n\n\u003e 执行上面的命令后，server目录下会出现docs文件夹，登录http://localhost:8080/swagger/index.html，即可查看swagger文档\n\n## 2.2 热编译\n\n```\ngo get github.com/pilu/fresh\n\n进入项目执行\n\nfresh\n\n配置文件 是runner.conf\n```\n\n## 2.3 工具\n\n### 2.3.1 mysql转model\n\n```\ncd cmd\ngo build . \n\n./cmd.exe make:model \n\n详细命令\n./cmd.exe make:model -h\n\n```\n\n### 2.3.2 初始化数据\n\n\u003e 生成基础表和数据\n\n```\ncd cmd\ngo build . \n\n./cmd.exe initdb \n```\n\n### 2.3.3 make:mysql\n\n\u003e 根据model生成数据表\n\n```\n./cmd.exe make:model -t=Test\n```\n\n### 2.3.4 make:command\n\n\u003e 生成command命令\n\n```\n生成make-service命令：同时会将-转成:\n./cmd.exe make:command -n=make-service\n```\n\n### 2.3.5 make:service\n\n\u003e 生成service\n\n```\n根据app/models/test Test\n生成默认文件 TestService.go\n./cmd.exe make:service -m=test/Test \n生成自定义文件 testSerive.go\n./cmd.exe make:service -m=test/Test -f=testService\n生成到自定义目录\n./cmd.exe make:service -m=test/Test -p=test\n```\n\n```\n会把-转成：\n./cmd.exe make:command -n=make-service\n```\n## 3 技术选型\n\n- 用`Gin`快速搭建基础restful风格API，`Gin`是一个go语言编写的Web框架\n- 数据校验 `go-playground` gin框架内置，已支持错误信息转中文\n- 数据库：采用`MySql`(5.6.44)版本，使用`gorm`实现对数据库的基本操作。\n- API文档：使用`Swagger`构建自动化文档。\n- 热重启`HotStart`,我自己写的一个\n- 配置文件 使用`viper`解析\n- 日志：使用`logrus`实现日志记录。\n- 权限：使用`casbin`实现按钮级权限。\n- 命令行工具：自建命令行支持`mysql`转`Model`、生成初始化数据。\n\n## 4. 项目架构\n### 4.1 目录结构\n\n```\n    ├─app  \t     （项目核心目录）\n    |  ├─controller     （控制器）\n    |  ├─middleware     （中间件）\n    |  ├─models         （数据结构层）\n    |  ├─request        （数据请求层，定义特殊请求结构体以及数据校验）\n    |  ├─request        （数据展示层定义结构体）\n    |  ├─services       （服务层）\n    ├─config            （配置包）\n    ├─cron              （定时脚本）\n    ├─core  \t        （內核）\n    ├─docs  \t        （swagger文档目录）\n    ├─global            （全局变量）\n    ├─initialize         (初始化)\n    ├─log                (日志文件)\n    ├─routes            （路由）\n    ├─static            （静态文件包括config目录）\n    ├─templates         （模板）\n    ├─tests             （测试）\n    └─tool\t            （工具）\n\n```\n### 4.2 组件支持\n\n1. 支持[Swagger](https://github.com/swaggo/gin-swagger)接口文档生成\n2. 支持[jwt](https://github.com/golang-jwt/jwt)鉴权\n3. 支持[zap](https://go.uber.org/zap) 日志\n4. 支持[viper](https://github.com/spf13/viper) 配置文件解析\n5. 支持go1.6.0 go:embed特性,打包包含静态文件\n6. 支持[gorm](https://gorm.io/gorm) 数据库组件、支持读写分离，数据库主从\n7. 支持web界面 使用[ Light Year Admin 模板](https://gitee.com/yinqi/Light-Year-Admin-Using-Iframe)\n8. 支持多角色的RBAC权限控制（支持到按钮级），使用[casbin](https://github.com/casbin/casbin/v2)\n9. cmd目录下支持生成model、支持数据库初始化\n10. 支持热编译[fresh](https://github.com/gravityblast/fresh)\n\n### 联系作者\n![my](https://activity-urt.oss-cn-beijing.aliyuncs.com/ecitic/%E6%88%91%E7%9A%84.jpg)\n### 项目图片\n\n![login](https://activity-urt.oss-cn-beijing.aliyuncs.com/ecitic/login.png)\n\n![login](https://activity-urt.oss-cn-beijing.aliyuncs.com/ecitic/%E9%A6%96%E9%A1%B5.png)\n\n![login](https://activity-urt.oss-cn-beijing.aliyuncs.com/ecitic/%E6%9D%83%E9%99%90%E9%85%8D%E7%BD%AE.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F18211167516%2Fgo-gin-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F18211167516%2Fgo-gin-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F18211167516%2Fgo-gin-api/lists"}