{"id":20321297,"url":"https://github.com/cyj19/go-web","last_synced_at":"2025-07-26T08:37:58.748Z","repository":{"id":45894499,"uuid":"389875006","full_name":"cyj19/go-web","owner":"cyj19","description":"go-web是使用gin+gorm+casbin+mysql+redis的基于rbac模型的权限管理系统。主要目的是使初学者通过项目进一步掌握go；其次也可以作为一个基本的后台管理系统脚手架来进行二次开发。","archived":false,"fork":false,"pushed_at":"2021-11-29T06:07:37.000Z","size":440,"stargazers_count":10,"open_issues_count":0,"forks_count":7,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-11T19:08:32.678Z","etag":null,"topics":["casbin","gin","gorm","jwt","rbac"],"latest_commit_sha":null,"homepage":"","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/cyj19.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}},"created_at":"2021-07-27T06:39:44.000Z","updated_at":"2025-02-27T16:26:06.000Z","dependencies_parsed_at":"2022-09-23T09:42:00.063Z","dependency_job_id":null,"html_url":"https://github.com/cyj19/go-web","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cyj19/go-web","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyj19%2Fgo-web","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyj19%2Fgo-web/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyj19%2Fgo-web/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyj19%2Fgo-web/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cyj19","download_url":"https://codeload.github.com/cyj19/go-web/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyj19%2Fgo-web/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267141103,"owners_count":24041980,"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","status":"online","status_checked_at":"2025-07-26T02:00:08.937Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","gorm","jwt","rbac"],"created_at":"2024-11-14T19:12:59.600Z","updated_at":"2025-07-26T08:37:58.718Z","avatar_url":"https://github.com/cyj19.png","language":"Go","readme":"\u003ch1 align=\"center\" \u003eGo Web\u003c/h1\u003e\n\n\u003cdiv align=\"center\"\u003e\n由gin + jwt + casbin + gorm技术栈实现Golang版的RBAC权限管理脚手架, 其主要目的是使Golang初学者通过实践进一步掌握Golang相关的开发技能\n\u003c/div\u003e\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/Go-v1.16-blue\" alt=\"Go version\"/\u003e\n\u003cimg src=\"https://img.shields.io/badge/Gin-v1.7.2-brightgreen\" alt=\"Gin version\"/\u003e\n\u003cimg src=\"https://img.shields.io/badge/Gorm-v1.21.11-brightgreen\" alt=\"Gorm version\"/\u003e\n\u003cimg src=\"https://img.shields.io/github/license/cyj19/go-web\" alt=\"License\"/\u003e\n\u003c/p\u003e\n\n\n## 特性\n- `RESTful API` 设计风格\n- `MySQL`       数据库存储\n- `gin`         golang web 的微框架\n- `gorm`        数据库的ORM管理框架\n- `gin-jwt`     gin封装的jwt中间件，用户认证\n- `casbin`      轻量级开源访问控制框架，RBAC\n- `go-redis`    redis客户端开发工具\n- `viper`       轻便的golang配置管理工具\n- `zap`         高性能日志库，提供多种级别的日志打印\n- `lumberjack`  日志文件切割归档工具\n\n## 项目结构\n```\n├── cmd\n│    └── admin # admin项目主程序入口\n├── configs # 配置目录\n├── internal # 内部目录，不对外公开\n│    ├── admin # admin项目目录\n│    │     ├── api # api目录\n│    │     │    └── v1 # v1版本接口目录(类似于Java中的controller), 如果有新版本可以继续添加v2/v3\n│    │     ├── global # 全局公用模型目录\n│    │     ├── router # 路由目录\n│    │     ├── service # 业务逻辑目录\n│    │     │    └── v1 # v1版本业务目录, 如果有新版本可以继续添加v2/v3\n│    │     ├── store # 数据操作目录\n│    │     ├── data.go # 初始化数据\n│    │     └── router.go # 定义路由规则\n│    ├── pkg # 内部公共模块目录\n│    │     ├── cache # redis操作目录\n│    │     ├── cofnig # 配置实体目录\n│    │     ├── db # 数据库目录\n│    │     ├── initialize # 工具初始化目录\n│    │     ├── logger # 日志目录\n│    │     ├── middleware # 中间件目录\n│    │     ├── model # 传输模型目录\n│    │     ├── response # 响应模型目录\n│    │     └── util # 工具包目录\n├── logs # 日志文件目录\n├── pkg # 外部公共模块目录\n├── .gitignore # git忽略\n├── go.mod # go依赖列表\n├── go.sum # go依赖下载历史\n├── LICENSE # 开源证书\n├── README.md # 说明文档\n```\n\n## 快速开始\n```\n# 开始前请使用go mod，它可以为你减少很多麻烦\n\n# 下载项目\ngit clone https://github.com/cyj19/go-web.git\n\n# 进入admin主程序入口\ncd cmd/admin\n\n# 运行程序\n# 使用开发环境默认配置运行\ngo run main.go \n# 使用生产环境指定配置运行\ngo run main.go -web_config=xxxx -web_mode=prod\n\n```\n\u003e 启动成功后，携带参数username:admin password:123456，发送POST请求到 `http://127.0.0.1:9999/api/v1/base/login` 获取token\n\n## 感想\n花足够多的时间，做足够多的练习。  \n学习过程中一直深受[如何快速高效率地学习Go语言](https://www.cnblogs.com/code-craftsman/p/12515802.html)文章影响，在此与大家分享。\n\n## 特别鸣谢\n\u003e 本项目开发过程学习了以下大神的思路和代码风格，感谢大神！！！\n\n\u003cbr/\u003e\n[gin-vue-admin](https://github.com/flipped-aurora/gin-vue-admin): Gin-vue-admin is a full-stack (frontend and backend separation) framework designed for management system.\n\u003cbr/\u003e\n[gin-web](https://github.com/piupuer/gin-web)\n\u003cbr/\u003e\n[iam](https://github.com/marmotedu/iam)\n\n\n## MIT License\n\n    Copyright (c) 2021 cyj19","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcyj19%2Fgo-web","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcyj19%2Fgo-web","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcyj19%2Fgo-web/lists"}