Golang 根据Gorm和Gin开发一个后台管理系统

眉间皱痕 提交于 2021-01-13 07:50:42

    \\\\\\\\\\\


项目后端地址:https://github.com/olongfen/gorm-gin-admin

项目前端地址:https://github.com/olongfen/user_admin

项目指导文档

  • 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/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目录下还没有配置文件的时候,你可以运行一次项目,会自动生成配置文件,再运行一次就可以开机服务了,修改项目配置无需重启项目,配置热加
载每10s一次,可以自己在pkg/settiong/下修改热加载时间

1.2.4 Run Service

     go run main.go

2. 技术栈

  • 前端:用基于vueElement-UI构建基础页面。

  • 后端:用Gin快速搭建基础restful风格API,Gin是一个go语言编写的Web框架。

  • 数据库:采用PostgreSQL,使用gorm2.0版本实现对数据库的基本操作,

  • 缓存:准备开发使用Redis实现记录当前活跃用户的jwt令牌并实现多点登录限制。

  • API文档:使用Swagger构建自动化文档。

  • 配置文件:使用gopkg.in/yaml.v2实现yaml格式的配置文件。

  • 日志:使用github.com/sirupsen/logrus实现日志记录。

3. 主要功能

  • 权限管理:基于jwtcasbin实现的权限管理

  • 用户管理:系统管理员分配用户角色和角色权限。

  • 角色管理:创建权限控制的主要对象,可以给角色分配不同api权限和菜单权限。

  • 菜单管理:实现用户动态菜单配置,实现不同角色不同菜单。

  • api管理:不同用户可调用的api接口的权限不同。

  • 条件搜索:增加条件搜索示例。

  • restful示例:可以参考用户管理模块中的示例API。

4. 计划任务

  •  导入,导出Excel

  •  管理员操作记录

  •  RPC给其他项目调用

  •  token缓存机制


本文分享自微信公众号 - Golang基础教程(olongfen)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!