GoZero入门使用及注意事项
1. 环境准备
1.1 Go语言安装
Windows安装(Go for Windows)[https://golang.org/dl/go1.15.8.windows-amd64.msi]
# 验证Go版本
go version
1.2 Go MODULE 配置
go env -w GO111MODULE="on"
开启Go MODULE之后就不需要配置GO PATH,代码在任何地方都可以运行
设置GOPROXY代理
go env -w GOPROXY=https://goproxy.cn
设置Go代理是因为我们要引用的大部分包都在国外,使用代理之后可以不翻墙就快速下载。
1.3 Goctl 安装
终端输入以下指令就可以
go install github.com/zeromicro/go-zero/tools/goctl@latest
Goctl 是gozero的核心之一,在使用时要通过goctl来进行框架代码的生成。要能够熟练使用。
2. API 配置
api配置控制着api服务中的各种功能,包含但不限于服务监听地址,端口,环境配置,日志配置等
这里配置可以先不管,一开始的配置够我们用。
3. 服务搭建
3.1 框架生成
首先新建一个文件夹,命名为项目名称,在文件夹中创建一个子文件夹,命名为api
,在api文件夹中创建一个api文件,这里用zhibo.api
示范
3.1.1 api文件
这里先定义一个getuserinfo 接口,首先在type中定义一个GetUserInfo接口,实现获取用户的信息功能。具体定义方法如下:
//api 语法版本
syntax = "v1"
//介绍
info(
author:"dsy"
date: "2023.03.20"
desc: "直播录制"
)
// 在type中定义GetUserInfo发送的Req 服务端返回的Reply格式,
//我这里请求使用的是form表单,具体字段是UserId ,
//返回的是用户的roomId 和WebId 后边的`json:""`表示这个字段在前端返回中的格式。
type (
GetUserInfoReq {
UserId string `form:"userid"`
}
GetUserInfoReply {
RoomData string `json:"room_id"`
WebId string `json:"web_id"`
}
)
3.1.2 生成代码框架
编写完api
文件后,在终端中使用如下命令,生成代码框架
# 对命令中的三个参数进行一个简单说明
goctl api go -api zhibo.api -dir ../ -style goZero
# -api 是指定你要使用的api文件
# -dir 指定要生成的目录,我这里是指定在项目的根目录下,就是api文件的上一个文件夹目录下,所以使用 ../
# -style 指定生成的代码