跳至主要內容

go-zero 微服务框架学习笔记

逸尘.Lycodx大约 1 分钟后端gogo-zero

go-zero微服务框架学习笔记

学习资料

1.https://go-zero.dev/cn/docs/prepare/prepareopen in new window

2.https://www.cnblogs.com/haima/p/16057786.htmlopen in new window

一、goctl 安装

说明

goctl 是 go-zero 的一个命令行工具,可以用来生成基础代码

GOPROXY=https://goproxy.cn/,direct 
go install github.com/zeromicro/go-zero/tools/goctl@latest

执行完毕后会在$GOPATH/bin里生成执行文件goctl.exe

二、goctl 使用

2.1 快速生成API服务

mkdir project
cd project
# 生成相关代码
goctl api new greet
go mod tidy
cd greet
# 启动服务
go run greet.go -f etc/greet-api.yaml

2.2 编写API代码

mkdir user
cd user
vim user.api

user.api内容

syntax = "v1"

info(
	author: "user-api"
	date:   "2022-10-18"
	desc:   "api语法示例及语法说明"
)

type UserInfoReq {
	UserId int64 `json:"userId"`
}

type UserInfoResp {
	UserId   int64  `json:"userId"`
	Nickname string `json:"nickname"`
}

service user-api{
	@doc "获取用户信息"
	@handler userInfo
	get /user/info (UserInfoReq) returns (UserInfoResp)
}

Goland 和 vscode 已经有 goctl 相关插件,下载后更方便

生成相关代码

# 使用模板生成
# --home $goctl_template_path  指定 goctl 模板文件 
goctl api go -api user.api -dir . --home ../../.goctl

参考:https://go-zero.dev/cn/docs/advance/templateopen in new window

# 原始命令
# -api $api_file  api 文件路径
# -dir $dir_output_path  输出目录
# --style 设置样式 goZero 表示驼峰 go_zero 表示蛇形
goctl api go -api user.api -dir . --style=goZero

3、生成代码分析

3.1 目录结构

├─etc
| 	└─user-api.yaml  # 配置文件
└─internal
    ├─config	
    ├─handler	# 处理函数
    ├─logic		# 业务逻辑(基本上只需要在这里写代码就行)
    ├─svc
    └─types		# 定义结构体

3.2 代码部分

go-zero通过定义api文件生成基础代码,api文件类似于protobuf

后面只需要在 logic 目录写业务逻辑即可

持续更新中..... ^ _ ^

上次编辑于: