一步步实现微服务权限管理系统(1)
前言
- 前端参考了很多框架,可谓百花齐放,但很多封装过剩,不利于学习和应用,最终我选择了 [vue-pure-admin](https://github.com/pure-admin/vue-pure-admin)
- 后端我将使用 go-zero 来带领大家一步步实现一个权限管理系统
- 本系列项目存放在 purezeroadmin 中,每一部分我都将打tag,并保证每个tag能正常运行。
- 后面示例均为
purezeroadmin
项目为例,你们可以根据需要自建工程来进行试验。均采用vscode
进行试验。 go-zero
常用命令我将放入其对应的makefile
文件中。
搭建环境
前端环境
- 参考
vue-pure-admin
官网,下载对应工具包
❯ cd vue-pure-admin
❯ pure create front-end
? 请输入项目名称 front-end
? 选择一个代码托管平台下载模板 Gitee
? 请选择模板类型 thin
- 运行,打开浏览器观测成功
# vue-pure-admin工程下执行
❯ cd front-end
# 删除git仓库,外部工程自己git管理
❯ rm -rf .git
❯ pnpm i
❯ pnpm dev
后端环境
-
参考
go-zero
官网,下载对应工具包 -
创建工程
# vue-pure-admin工程下执行
❯ mkdir back-end
❯ cd back-end
❯ go mod init backend
- 创建测试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)
}
- 生成
api
项目代码
# back-end工程下执行
❯ goctl api go --api hello-api/api/hello.api --dir hello-api
- 修改返回逻辑
# back-end工程下执行
cd hello-api/internal/logic
修改 helloinfologic.go
的 HelloInfo
函数
func (l *HelloInfoLogic) HelloInfo(req *types.HelloReq) (resp *types.HelloResp, err error) {
return &types.HelloResp{
HelloWorld: "hello " + req.World,
}, nil
}
- 运行查看效果
# 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
中了