go-zero 单体应用实践(一)

¥0.00 库存: 999
立即购买

商品详情



  官方文档Golang 环境安装 golangGo Module设置 goctl安装 goctlprotoc & protoc-gen-go安装

  etcd,redis,mysql 等开发工具可以通过Docker 快速搭建;可参考 gonivinck

  api语法介绍

  goctl api go -api userlogin.api -dir . go mod tidy

  生成文件目录

  4、编辑配置文件 userlogin/etc/userlogin-api.yaml

  添加config声明 userlogin/internal/config/config.go 其中Salt 用来密码加密存储,Auth 用于 jwt鉴权

  添加用户表 userlogin/model/user.sql

  通过命令生成model文件 model 指令 goctl model mysql ddl -src="userlogin/model/user.sql" -dir="userlogin/model/" -c

  -c 参数代表 在model层使用缓存 需要配置对应的 CacheRedis 生成文件如下:

  可以看到 goctl 已经生成了 UserModel interface 并实现了基本的增删改查询代码; image.png

  编辑 userlogin/internal/svc/servicecontext.go 添加 logic所依赖的 UserModel

  1、注册逻辑代码

  2、添加 JWT 工具 userlogin/common/jwtx/jwt.go

  3、用户登录逻辑 userlogin/internal/logic/loginlogic.go

  7、启动测试

  注册测试

  登录测试

  上面已经完成了登录注册功能;并且登录返回了Token;接下来就用一下Token

  编写 api 文件 在 service 上方声明使用jwt鉴权 修改 userlogin/userlogin.api 重新执行 goctl api 命令

  可以看到路由文件中 userlogin/internal/handler/routes.go 新增的路由中通 WithJwt 声明了使用jwt鉴权

  userlogin/internal/logic/userinfologic.go