48 Star 216 Fork 56

Lyric / gin-admin

Create your Gitee Account
Explore and code with more than 5 million developers,Free private repositories !:)
Sign up
Clone or download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

Gin Admin

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

ReportCard GoDoc License

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

特性

  • 遵循 RESTful API 设计规范 & 基于接口的编程规范
  • 基于 GIN 框架,提供了丰富的中间件支持(JWTAuth、CORS、RequestLogger、RequestRateLimiter、TraceID、CasbinEnforce、Recover、GZIP)
  • 基于 Casbin 的 RBAC 访问控制模型 -- 权限控制可以细粒度到按钮 & 接口
  • 基于 Gorm 的数据库存储
  • 基于 WIRE 的依赖注入 -- 依赖注入本身的作用是解决了各个模块间层级依赖繁琐的初始化过程
  • 基于 Logrus & Context 实现了日志输出,通过结合 Context 实现了统一的 TraceID/UserID 等关键字段的输出(同时支持日志钩子写入到Gorm)
  • 基于 JWT 的用户认证 -- 基于 JWT 的黑名单验证机制
  • 基于 Swaggo 自动生成 Swagger 文档 -- 独立于接口的 mock 实现
  • 基于 net/http/httptest 标准包实现了 API 的单元测试
  • 基于 go mod 的依赖管理(国内源可使用:https://goproxy.cn/)

依赖工具

go get -u github.com/cosmtrek/air
go get -u github.com/google/wire/cmd/wire
go get -u github.com/swaggo/swag/cmd/swag
  • air -- Live reload for Go apps
  • wire -- Compile-time Dependency Injection for Go
  • swag -- Automatically generate RESTful API documentation with Swagger 2.0 for Go.

依赖框架

  • Gin -- The fastest full-featured web framework for Go.
  • GORM -- The fantastic ORM library for Golang
  • Casbin -- An authorization library that supports access control models like ACL, RBAC, ABAC in Golang
  • Wire -- Compile-time Dependency Injection for Go

快速开始

也可以使用国内源:https://gitee.com/lyric/gin-admin

$ git clone https://github.com/LyricTian/gin-admin

$ cd gin-admin

# 使用AIR工具运行
$ air

# OR 基于Makefile运行
$ make start

# OR 使用go命令运行
$ go run cmd/gin-admin/main.go web -c ./configs/config.toml -m ./configs/model.conf --menu ./configs/menu.yaml

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

生成swagger文档

# 基于Makefile
make swagger

# OR 使用swag命令
swag init --generalInfo ./cmd/${APP}/main.go --output ./internal/app/swagger

重新生成依赖注入文件

# 基于Makefile
make wire

# OR 使用wire命令
wire gen ./internal/app

前端工程

互动交流

与作者对话

该项目是利用业余时间进行开发的,开发思路主要是源于自己的项目积累及个人思考,如果您有更好的想法和建议请与我进行沟通,一起探讨,畅聊技术人生,相互学习,一起进步。我非常期待!下面是我的微信二维码(如果此项目对您提供了帮助也可以请作者喝杯咖啡 (* ̄︶ ̄),聊表心意,一起星巴克「续杯」~嘿嘿 ):

wechat we-pay

QQ 群:1409099

qqgroup

MIT License

Copyright (c) 2020 Lyric

Comments ( 22 )

Sign in for post a comment

About

基于 Golang + GIN + GORM+ CASBIN + WIRE + Ant Design React的RBAC权限管理脚手架 spread retract
Cancel

Releases

No release

Gitee Metrics

Contributors

All

Activities

load more
can not load any more
Go
1
https://git.oschina.net/lyric/gin-admin.git
git@git.oschina.net:lyric/gin-admin.git
lyric
gin-admin
gin-admin
master

Search