简体中文 | English
项目指导文档
- Web UI Framework:element-ui
- Server Framework:gin
- Grom Framework: gorm
1. 基本介绍
1.1 项目结构
│ ├─conf (Config file)
│ ├─docs (swagger APIs docs)
│ ├─log (log file)
│ ├─public (public static file)
│ ├─static (head icon)
├─src
│ ├─controller (Controller)
│ ├─middleware (Middleware)
│ ├─models (Model entity)
│ ├─pkg (Project private package)
│ ├─adapter (Casbin adapter)
│ ├─app (Gin service response)
│ ├─codes (Response code)
│ ├─error (Project private error)
│ ├─gredis (Redis)
│ ├─query (Songo parase to SQL line)
│ ├─setting (Project setting)
│ ├─router (Router)
│ ├─rpc (RPC)
│ ├─service (services)
│ └─utils (common utilities)
1.1.2 生成API文档
cd grom-gin-admin
go get -u github.com/swaggo/swag/cmd/swag
swag init
访问http://localhost:8050/api/v1/swagger/index.html,即可查看swagger文档
1.2 环境配置
1.2.1 Golang 安装
- 国外代理可以浏览该界面查看golang安装文档 olongfen.github.o
- 国内朋友点击这个界面查看golang安装文档 blog.olongfen.ltd
1.2.2 项目环境配置
本人在这个项目的环境配置通过docker安装,需要在主机安装配置自己安装PostgreSQL和Redis即可
git clone https://github.com/olongfen/gorm-gin-admin.git
cd gorm-gin-admin
docker-compose up -d .
1.2.3 项目配置说明
- 通过RSA 密钥对来验证用户会话权限
admin.key admin.pub user.key user.pub - casbin 模型文件
model_casbin.conf - 项目配置文件
当你的conf目录下还没有配置文件的时候,你可以运行一次项目,会自动生成配置文件,然後修改配置中的自己的配置信息,然後再次運行即可。
1.2.4 Run Service
go run main.go
2. 技术栈
- 前端:用基于
vue的Element-UI构建基础页面。 - 后端:用
Gin快速搭建基础restful风格API,Gin是一个go语言编写的Web框架。 - 数据库:采用
PostgreSQL,使用gorm2.0版本实现对数据库的基本操作, - 缓存:准备开发使用
Redis实现记录当前活跃用户的jwt令牌并实现多点登录限制。 - API文档:使用
Swagger构建自动化文档。 - 配置文件:使用
github.com/spf13/viper实现yaml格式的配置文件。 - 日志:使用
github.com/sirupsen/logrus实现日志记录。
3. 主要功能
- 权限管理:基于
jwt和casbin实现的权限管理 - 用户管理:系统管理员分配用户角色和角色权限。
- 角色管理:创建权限控制的主要对象,可以给角色分配不同api权限和菜单权限。
- 菜单管理:实现用户动态菜单配置,实现不同角色不同菜单。
- api管理:不同用户可调用的api接口的权限不同。
- 条件搜索:增加条件搜索示例。
- restful示例:可以参考用户管理模块中的示例API。
4. 计划任务
- 导入,导出Excel
- 管理员操作记录
- RPC给其他项目调用
- token缓存机制