时常一周的golang萌新学习go-zero --- 进度一

368 阅读2分钟

本文已参与「新人创作礼」活动, 一起开启掘金创作之路。

萌新教程记录(我也是接触这个框架),老规矩看官网文档学习。按照所需要的东西; 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很强大的。 Snipaste_2023-02-19_16-38-57.jpg

就这样就生成了登录接口和用户详情的接口的方法了。

生成的目录如下

Snipaste_2023-02-19_16-45-18.jpg

关于启动文件为啥是 user.go。因为我刚刚的 api源文件是的server 写的 user-api ;所以自动生成了 入口文件是 user.go。

好了模版搭建完成了,接下里就是调通数据库连接等等配置。下期见