GO项目实践一(gin + vue)

基于go-gin + vue开发的简单权限管理系统

1. 基本介绍

之前一直做Java开发,Go语言语法看过两三次,但是没动手写点东西总觉得不对劲,于是有了这个项目,当是练练手。

1.1 基本功能

这个系统主要实现的是一个简单的权限管理系统,主要功能如下:

  • 登录认证
  • 用户管理
  • 角色管理
  • 菜单管理
  • 客户端管理
  • API管理

基于以上功能实现前端页面菜单和按钮级权限,后端API权限校验

1.2 系统预览

  • 用户管理
    用户管理

  • 角色管理
    角色管理

  • 菜单管理
    菜单管理

  • API管理
    API管理

  • 客户端管理
    客户端管理

1.3 体验

系统部署到个人云主机上了,可以戳链接体验,入门级云主机,请轻点~

2. 技术栈

项目前后端分离,使用restful接口进行交互。

1. 前端

前端主要使用的是vue.js框架,UI是饿了么开源的ElementUI。本项目前端是基于vue-element-admin进行的二次开发,个人是个前端渣渣,觉得这个开源后台系统模版对后端开发者来说十分的友好,值得学习~

PS:其实这个前端模块是我之前另一个Spring Cloud项目用的前端模块,偷一下懒,直接搬过来用。因为都是前后端分离的,只要保证后端接口一致,然后做了点适配修改就可以直接用了🤓🤓

2. 后端

后端主要用到开源库有以下

  • gin-gonic/gin : web框架
  • jinzhu/gorm : 对象关系映射库
  • appleboy/gin-jwt: 基于jwt实现登录
  • facebookgo/inject: 依赖注入

可以先学习一下以上相关库的使用

3. 本地跑起来

前提条件:

  1. 安装好go 1.13环境node环境
  2. mysql数据库

包管理是go modules, 可参考这篇文章,是一个系列文章,推荐~

先把两个项目克隆到本地

# 后端模块
git clone git@github.com:PGshen/june.git
# 前端模块
git clone git@github.com:PGshen/june-web.git

3.1 数据准备

  1. june/doc/june.sql导入到自己的mysql数据库
  2. 修改june/config/config.yml,将数据库配置指向自己的数据库

3.2 启动后端服务

  1. 移动到june目录,执行go命令
go run main.go
  1. 查看日志或者curl http://localhost:8000/login,验证下后端服务是否正常跑起来了

3.3 启动前端服务

  1. 移动到june-web目录,先执行如下命令下载node的相关依赖
npm install
  1. 以开发模式启动
npm run dev

正常的话会自动打开http://localhost:9527,这样就OK了~

  1. 如果修改了后端的默认端口,那么需要在前端配置june-web/vue.config.js那里同步修改服务端指向
proxy: {
  [process.env.VUE_APP_BASE_API]: {
    // 修改target指向
    target: `http://127.0.0.1:8000`,
    changeOrigin: true,
    pathRewrite: {
      ['^' + process.env.VUE_APP_BASE_API]: ''
    }
  }
},

项目地址
后端 https://github.com/PGshen/june
前端 https://github.com/PGshen/june-web

Logo

前往低代码交流专区

更多推荐