GO项目实践一(gin + vue)

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

  • 7
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Go微服务开发是利用Go语言进行微服务架构的开发方式。在这个问题中,使用了gin、grpc和etcd进行重构grpc-todolist项目Gin是一个轻量级的Web框架,使用它可以快速构建高性能的Web应用程序。它具有简单易用、性能出色和灵活的特点。在微服务开发中,Gin可以作为HTTP服务器框架,处理和响应客户端的HTTP请求。 gRPC是一种高性能、开源的远程过程调用(RPC)框架。它支持多种编程语言,并使用带有协议缓冲区的Google Protocol Buffers进行数据交换。在微服务架构中,gRPC可以用于服务之间的通信,通过定义接口和消息格式,实现服务间的数据传输和调用。 Etcd是一个高可靠、分布式的键值存储系统。它使用Raft一致性算法来保证数据的可靠性和一致性。在微服务开发中,Etcd可以作为服务发现和配置管理的工具,用于注册和发现各个微服务的信息。 对于重构grpc-todolist项目来说,使用gin可以将原有的HTTP接口改写为更高性能的接口,提高整个系统的性能。通过使用gRPC,可以将原有的接口定义为gRPC接口,实现服务间的高效通信,并且易于扩展和维护。同时,借助Etcd实现服务注册和发现,提高系统的可用性和灵活性。 总而言之,通过使用gin、grpc和etcd对grpc-todolist项目进行重构,可以提高系统性能、扩展性和可维护性。这种微服务开发方式能够更好地适应大规模分布式系统的需求,使得系统更稳定和可靠。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值