{"id":15095930,"url":"https://github.com/hequan2017/go-admin","last_synced_at":"2025-04-05T12:08:10.313Z","repository":{"id":45995847,"uuid":"165625598","full_name":"hequan2017/go-admin","owner":"hequan2017","description":"go web api，包含gin+gorm+jwt+rbac等。","archived":false,"fork":false,"pushed_at":"2023-02-14T14:50:51.000Z","size":234,"stargazers_count":420,"open_issues_count":2,"forks_count":95,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-03-29T11:09:48.652Z","etag":null,"topics":["admin","casbin","cmdb","devops","gf","gin","go","go-admin","goframe","jwt","linux","rbac","sql","token"],"latest_commit_sha":null,"homepage":"https://github.com/hequan2017/go-admin/","language":"Go","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/hequan2017.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":"2019-01-14T08:39:57.000Z","updated_at":"2025-03-07T01:54:02.000Z","dependencies_parsed_at":"2024-06-18T20:06:26.967Z","dependency_job_id":"42fd38cb-6845-4e32-afce-5ad05f5a6a85","html_url":"https://github.com/hequan2017/go-admin","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hequan2017%2Fgo-admin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hequan2017%2Fgo-admin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hequan2017%2Fgo-admin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hequan2017%2Fgo-admin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hequan2017","download_url":"https://codeload.github.com/hequan2017/go-admin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247332612,"owners_count":20921853,"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":["admin","casbin","cmdb","devops","gf","gin","go","go-admin","goframe","jwt","linux","rbac","sql","token"],"created_at":"2024-09-25T15:44:01.645Z","updated_at":"2025-04-05T12:08:10.290Z","avatar_url":"https://github.com/hequan2017.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# Go Web Admin \n\n![版本](https://img.shields.io/badge/release-2.0-blue.svg)\n![语言](https://img.shields.io/badge/language-goland1.16.5-blue.svg)\n![base](https://img.shields.io/badge/base-gin-blue.svg)\n![base](https://img.shields.io/badge/base-casbin-blue.svg)\n\n\u003e 一个Go Web Api 后端 简单例子,包含 用户、权限、菜单、JWT 、 RBAC(Casbin)等！\n\n\u003e 本项目已停止维护，请仅供参考！ \n\n\u003e 交流QQ群： 620176501\n\n## 表\n* user     \n    * username  password   \n* role      \n    * name \n* menu     \n    * name   path    method\n\n\n## API  注释\n\n\u003e http://127.0.0.1:8000/swagger/index.html\n\n![demo](docs/demo.jpg)\n\n\n\n## 目录结构\n* conf：用于存储配置文件\n* docs： 文档\n    * sql执行命令\n    * API注释\n* logs： 日志\n* middleware：应用中间件\n    * inject 初始化对象\n    * jwt\n    * permission  权限验证\n* models：应用数据库模型\n* pkg：第三方包\n* routers： 路由逻辑处理\n* service： 逻辑处理\n* test: 单元测试\n\n\n## 权限验证说明\n\n```\n项目启动时,会自动user  role  menu 进行自动关联!  如有更改,会删除对应的权限,重新加载!\n\n用户  关联  角色  \n角色  关联  菜单  \n```\n\n\n```\n权限关系为:\n角色(role.name,  menu.path,  menu.method)  \n用户(user.username,   role.name)\n\n例如:\n运维部      /api/v1/users       GET\nhequan     运维部\n\n当hequan  GET  /api/v1/users 地址的时候，会去检查权限，因为他属于运维部 ，同时 运维部 有对应权限，所以本次请求会通过。\n\n用户 admin 有所有的权限,不进行权限匹配\n\n登录接口 /auth    /api/v1/userInfo 不进行验证\n```\n\n## 请求\n\n\u003e 请求和接收 都是 传递 json 格式 数据\n```\n例如:\n访问 /auth    获取token\n{\n\t\"username\": \"admin\",\n\t\"password\": \"123456\"\n}\n\n访问      /api/v1/menus?page=2    页面是page\n请求头设置  Authorization: Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n\n\n访问   /api/v1/userInfo  获取用户信息\n前端所需的权限 放在password字段里面，已经去重了。\n\n\"data\": {\n        \"lists\": {\n            \"id\": 2,\n            \"created_on\": 1550642309,\n            \"modified_on\": 1550642309,\n            \"deleted_on\": 0,\n            \"username\": \"hequan\",\n            \"password\": \",system,menu,create_menu,update_menu,delete_menu,user,create_user,update_user,delete_user,role,create_role,update_role,delete_role\",\n            \"role\": [\n                {\n                    \"id\": 2,\n                    \"created_on\": 0,\n                    \"modified_on\": 0,\n                    \"deleted_on\": 0,\n                    \"name\": \"运维部\",\n                    \"menu\": null\n                }\n            ]\n        }\n    },\n```\n\n## 部署\n\n### 支持\n\n- 部署 Mysql\n\n### 库\n\n\n创建一个库 go,然后导入sql,docs/sql/go.sql  创建表！\n\n### 配置文件\n\nYou should modify `conf/app.ini`\n\n```\n[database]\nType = mysql\nUser = root\nPassword =\nHost = 127.0.0.1:3306\nName = go\nTablePrefix = go_\n```\n\n### 安装部署\n```\n\nyum install go -y \n\n\nexport GOPROXY=https://goproxy.io\ngo get go-admin\ncd $GOPATH/src/go-admin\ngo build main.go\ngo run  main.go \n```\n\n\n### 热编译(开发时使用)\n```bash\n\ngo get github.com/silenceper/gowatch\n\ngowatch   \n```\n\n## windows 开发 需要gcc\n\u003e 执行会报错 \"gcc\" executable file not found in %PATH%\n\u003e 可以参考这个 安装gcc https://blog.csdn.net/xia_2017/article/details/105545789\n\n## 运行\n\n\n```\n更新角色权限关系 [[hequan 运维部]]\n角色权限关系 [[hequan 运维部]]\n[GIN-debug] [WARNING] Running in \"debug\" mode. Switch to \"release\" mode in production.\n - using env:\texport GIN_MODE=release\n - using code:\tgin.SetMode(gin.ReleaseMode)\n\n[GIN-debug] POST   /auth                     --\u003e go-admin/routers/api.Auth (4 handlers)\n[GIN-debug] GET    /swagger/*any             --\u003e github.com/swaggo/gin-swagger.WrapHandler.func1 (4 handlers)\n[GIN-debug] GET    /api/v1/menus             --\u003e go-admin/routers/api/v1.GetMenus (6 handlers)\n[GIN-debug] GET    /api/v1/menus/:id         --\u003e go-admin/routers/api/v1.GetMenu (6 handlers)\n[GIN-debug] POST   /api/v1/menus             --\u003e go-admin/routers/api/v1.AddMenu (6 handlers)\n[GIN-debug] PUT    /api/v1/menus/:id         --\u003e go-admin/routers/api/v1.EditMenu (6 handlers)\n[GIN-debug] DELETE /api/v1/menus/:id         --\u003e go-admin/routers/api/v1.DeleteMenu (6 handlers)\n[GIN-debug] GET    /api/v1/roles             --\u003e go-admin/routers/api/v1.GetRoles (6 handlers)\n[GIN-debug] GET    /api/v1/roles/:id         --\u003e go-admin/routers/api/v1.GetRole (6 handlers)\n[GIN-debug] POST   /api/v1/roles             --\u003e go-admin/routers/api/v1.AddRole (6 handlers)\n[GIN-debug] PUT    /api/v1/roles/:id         --\u003e go-admin/routers/api/v1.EditRole (6 handlers)\n[GIN-debug] DELETE /api/v1/roles/:id         --\u003e go-admin/routers/api/v1.DeleteRole (6 handlers)\n[GIN-debug] GET    /api/v1/users             --\u003e go-admin/routers/api.GetUsers (6 handlers)\n[GIN-debug] GET    /api/v1/users/:id         --\u003e go-admin/routers/api.GetUser (6 handlers)\n[GIN-debug] POST   /api/v1/users             --\u003e go-admin/routers/api.AddUser (6 handlers)\n[GIN-debug] PUT    /api/v1/users/:id         --\u003e go-admin/routers/api.EditUser (6 handlers)\n[GIN-debug] DELETE /api/v1/users/:id         --\u003e go-admin/routers/api.DeleteUser (6 handlers)\n2019/05/31 14:48:43 [info] start http server listening :8000\n\n```\n\n\n\n\n## Features\n```\n- RESTful API\n- Gorm\n- logging\n- Jwt-go\n- Swagger\n- Gin\n- Graceful restart or stop (fvbock/endless)\n- App configurable\n```\n\n## 开发\n* 何全\n\n## 特别感谢\n```\n本项目主要参考了:\nhttps://github.com/EDDYCJY/go-gin-example  包含更多的例子，上传文件图片等。本项目进行了增改。\nhttps://github.com/LyricTian/gin-admin     主要为 gin+ casbin例子。\n```\n## 其他\n```shell\n## 更新API文档\nswag init\n\n## \ncd /opt/go-admin\nnohup  go run  main.go   \u003e\u003e  /tmp/go-http.log   2\u003e\u00261  \u0026 \n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhequan2017%2Fgo-admin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhequan2017%2Fgo-admin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhequan2017%2Fgo-admin/lists"}