Skip to content

一步步实现微服务权限管理系统(1)

前言

  • 前端参考了很多框架,可谓百花齐放,但很多封装过剩,不利于学习和应用,最终我选择了 [vue-pure-admin](https://github.com/pure-admin/vue-pure-admin)
  • 后端我将使用 go-zero 来带领大家一步步实现一个权限管理系统
  • 本系列项目存放在 purezeroadmin 中,每一部分我都将打tag,并保证每个tag能正常运行。
  • 后面示例均为 purezeroadmin 项目为例,你们可以根据需要自建工程来进行试验。均采用vscode进行试验。
  • go-zero 常用命令我将放入其对应的 makefile 文件中。

搭建环境

前端环境

  1. 参考 vue-pure-admin 官网,下载对应工具包
 cd vue-pure-admin
❯ pure create front-end
? 请输入项目名称 front-end
? 选择一个代码托管平台下载模板 Gitee
? 请选择模板类型 thin
  1. 运行,打开浏览器观测成功
# vue-pure-admin工程下执行 cd front-end
# 删除git仓库,外部工程自己git管理 rm -rf .git  pnpm i
❯ pnpm dev

后端环境

  1. 参考 go-zero 官网,下载对应工具包

  2. 创建工程

# vue-pure-admin工程下执行 mkdir back-end
❯ cd back-end
❯ go mod init backend
  1. 创建测试api
# back-end工程下执行 mkdir -p hello-api/api

创建测试 api 文件 hello.api

syntax = "v1"

info (
    title: "q9090960bnb3"
    desc:  "hello"
    date:  "2024-11-01"
)

type (
    HelloReq {
        World string `form:"world"`
    }
    HelloResp {
        HelloWorld string `json:"hello_world"`
    }
)

service hello-api {
    @doc "你好,世界"
    @handler helloInfo
    get /hello (HelloReq) returns (HelloResp)
}
  1. 生成 api 项目代码
# back-end工程下执行 goctl api go --api hello-api/api/hello.api --dir hello-api
  1. 修改返回逻辑
# back-end工程下执行
cd hello-api/internal/logic

修改 helloinfologic.goHelloInfo 函数

func (l *HelloInfoLogic) HelloInfo(req *types.HelloReq) (resp *types.HelloResp, err error) {
    return &types.HelloResp{
        HelloWorld: "hello " + req.World,
    }, nil
}
  1. 运行查看效果
# back-end工程下执行 cd hello-api
❯ go run hello.go
Starting server at 0.0.0.0:8888...
{"@timestamp":"2024-11-01T11:17:36.574+08:00","caller":"stat/usage.go:61","content":"CPU: 77m, MEMORY: Alloc=1.7Mi, TotalAlloc=3.6Mi, Sys=12.5Mi, NumGC=1","level":"stat"}
...

curl 测试

 curl "http://localhost:8888/hello?world=purezeroadmin"
{"hello_world":"hello purezeroadmin"}#  

tag版本

purezeroadmin 项目下

git checkout v1.0.0

接下来

front-end 中的mock数据替换到 back-end 中了

Comments