1 Star 0 Fork 185

不争馒头0_0 / gin-admin

forked from Lyric / gin-admin 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

Gin Admin

基于 Gin + GORM + Casbin + Dig 实现的RBAC权限管理脚手架,目的是提供一套轻量的中后台开发框架,方便、快速的完成业务需求的开发。

ReportCard GoDoc License

  • 在线演示地址 (用户名:root,密码:abc-123)(温馨提醒:为了达到更好的演示效果,这里给出了拥有最高权限的用户,请手下留情,只操作自己新增的数据,不要动平台本身的数据!谢谢!
  • Swagger 文档地址

特性

  • 遵循 RESTful API 设计规范
  • 基于 GIN WEB 框架,提供了丰富的中间件支持(用户认证、跨域、访问日志、请求频率限制、追踪 ID 等)
  • 基于 Casbin 的 RBAC 访问控制模型
  • 基于 GORM 的数据库存储(存储层对外采用接口的方式供业务层调用,实现了存储层的完全隔离)
  • 依赖注入(基于dig)
  • 日志追踪(基于logrus,日志钩子支持 gorm)
  • JWT 认证(基于黑名单的认证模式,存储支持:file/redis)
  • 支持 Swagger 文档(基于swaggo)
  • 单元测试(基于net/http/httptest包,覆盖所有接口层的测试)

快速开始

使用gin-admin-cli工具

快速创建并运行项目

$ go get -u github.com/LyricTian/gin-admin-cli
$ gin-admin-cli new -m -d ~/go/src/gin-admin -p gin-admin
$ cd ~/go/src/gin-admin
$ go run cmd/server/main.go -c ./configs/config.toml -m ./configs/model.conf -swagger ./internal/app/swagger

启动成功之后,可在浏览器中输入地址访问:http://127.0.0.1:10088/swagger/

快速生成功能模块(以Task为例,具体可参考:gin-admin-cli)

$ gin-admin-cli g -d ~/go/src/gin-admin -p gin-admin -n Task -c '任务管理'

手动下载并运行

获取代码

$ go get -v github.com/LyricTian/gin-admin/cmd/server

运行

运行服务

也可以使用脚本运行(详情可查看Makefile):make start

$ cd github.com/LyricTian/gin-admin
$ go run cmd/server/main.go -c ./configs/config.toml -m ./configs/model.conf -swagger ./internal/app/swagger

启动成功之后,可在浏览器中输入地址访问:http://127.0.0.1:10088/swagger/

温馨提醒

  1. 默认配置采用的是 sqlite 数据库,数据库文件(自动生成)在data/gadmin.db。如果想切换为mysqlpostgres,请更改配置文件,并创建数据库(数据库创建脚本在script目录下)。
  2. 日志的默认配置为标准输出,如果想切换到写入文件或写入到 gorm 存储,可以自行切换配置。

前端实现

Swagger 文档的使用

文档规则请参考:https://github.com/swaggo/swag#declarative-comments-format

安装工具并生成文档

$ go get -u -v github.com/swaggo/swag/cmd/swag
$ swag init -g ./internal/app/routers/api/swagger.go -o ./internal/app/swagger

生成文档之后,可在浏览器中输入地址访问:http://127.0.0.1:10088/swagger/

项目结构概览

.
├── cmd
│   └── server:主服务(程序入口)
├── configs:配置文件目录(包含运行配置参数及casbin模型配置)
├── docs:文档目录
├── internal:内部应用
│   └── app:主应用目录
│       ├── bll:业务逻辑层接口
│       │   └── impl:业务逻辑层的接口实现
│       ├── config:配置参数(与配置文件一一映射)
│       ├── context:统一上下文
│       ├── errors:统一的错误定义
│       ├── ginplus:gin的扩展函数库
│       ├── middleware:gin中间件
│       ├── model:存储层接口
│       │   └── impl:存储层接口实现
│       │       └── entity:映射数据库的实体
│       │       └── model:存储层接口实现
│       ├── routers:路由层
│       │   └── api:/api路由模块
│       │       └── ctl:/api路由模块对应的控制器层
│       ├── schema:对象模型
│       ├── swagger:swagger静态目录
│       └── test:接口层单元测试
├── pkg:公共模块
│   ├── auth:认证模块
│   │   └── jwtauth:JWT认证模块实现
│   ├── logger:日志模块
│   └── util:工具库
└── scripts:执行脚本

感谢以下框架的开源支持

MIT License

Copyright (c) 2019 Lyric

与作者对话

该项目是利用业余时间进行开发的,开发思路主要是来源于自己的项目积累及个人思考,如果您有更好的想法和建议请与我进行沟通,我非常期待!下面是我的微信二维码:

MIT License Copyright (c) 2018 Lyric Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

基于Gin + Casbin + Gorm + Ant Design React的RBAC权限管理脚手架 展开 收起
Go
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Go
1
https://gitee.com/jinghua81/gin-admin.git
git@gitee.com:jinghua81/gin-admin.git
jinghua81
gin-admin
gin-admin
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891