本文已参与「新人创作礼」活动, 一起开启掘金创作之路。
萌新教程记录(我也是接触这个框架),老规矩看官网文档学习。按照所需要的东西; go-zero的官网地址。其他的不要结束,自己去百度。(备注:命令都是linux;有些Windows不支持,自己👋🦌)
- 创建项目文件
mkdir go-zero-demo,进入项目文件下cd go-zero-demo - 终端命令,初始化项目
go mod init go-zero-demo - 继续创建一个api项目
mkdir user-api,进入项目user-api下cd user-api - 继续创建一个存放自动化生成的api目录文件
mkdir api并创建一个api文件touch api.api
前期准备工作已完成了,现在开始无聊的敲代码时刻了。
syntax = "v1" //版本号
// 登录接口
type (
logicReq {
// TODO: 登录请求,所需要的参数
UserName string `json:"username",validate:"required"` // 这里又一个坑;就是用了json后期传值必须是json形式;formdata 形式不行
Password string `json:"password",validate:"required"`
}
logicRep {
// TODO: 登录返回的参数
Token string `json:"token"`
}
)
service user-api {
@handler logic // 方法名
post /logic (logicReq) returns (logicRep); // 请求方式,请求地址,请求参数,返回参数
}
// 用户详情接口
type (
detailReq {
Token string `json:"token",validate:"required"`
}
detailRep {
Id string `json:"id"`
UserName string `json:"username"`
}
)
// 中间件服务
@server(
jwt: Auth // 开启token鉴权中间件
group: user // 路由分组(路由加前缀)
)
service user-api {
@handler detail // 方法名
get /user/detail (detailReq) returns (detailRep); // 请求方式,请求地址,请求参数,返回参数
}
接下来就是很重要的自动生成代码的命令了;可以用go-zero团队提供的ide插件自动生成。官方有教程;我还是觉得👋🦌命令舒服些。 命令切换到 user-api 目录下;输入命令
goctl api go -api api/api.api -dir .
go mod tidy
这个是每部分的详细介绍,这个goctl很强大的。
就这样就生成了登录接口和用户详情的接口的方法了。
生成的目录如下
关于启动文件为啥是 user.go。因为我刚刚的 api源文件是的server 写的 user-api ;所以自动生成了 入口文件是 user.go。
好了模版搭建完成了,接下里就是调通数据库连接等等配置。下期见