03 go-zero goctl详细使用

一. goctl功能简介

goctl是一个go-zero的工具集,运行goctl --help查看功能简介

NAME:
   goctl - a cli tool to generate code

USAGE:
   goctl [global options] command [command options] [arguments...]

VERSION:
   1.3.3 darwin/arm64

COMMANDS:
   bug         report a bug
   upgrade     upgrade goctl to latest version
   env         check or edit goctl environment
   migrate     migrate from tal-tech to zeromicro # 1.2及之前的的仓库为tal-tech,新仓库为zeromicro
   api         generate api related files 
   docker      generate Dockerfile
   kube        generate kubernetes files
   rpc         generate rpc code
   model       generate model code
   template    template operation
   completion  generation completion script, it only works for unix-like OS
   help, h     Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --help, -h     show help
   --version, -v  print the version

其中写代码比较常用的有api, rpc, model。

二. api的用法

  1. 创建zero-demo目录
  2. 初始化zero-demo
go mod init zero-demo
  1. 在zero-demo项目中创建user-api/api/user.api文件
mkdir -pv user-api/api
cd user-api/api
touch user.api
  1. 用IDE打开zero-demo项目,最好安装下goctl这个插件,vs和goland都有,装了之后写api文件会高亮
  2. 在user.api中写api,本文写一个简单的,详细的例子请参考https://go-zero.dev/cn/api-grammar.html
// api语法版本
syntax = "v1"

info(
author: "songmeizi"
date:   "2022-04-01"
desc:   "api语法示例及语法说明"
)

type (
    UserInfoReq {
        UserId   int64 `json:"userId"`
    }
    UserInfoResp {
        UserId     int64 `json:"userId"`
        NickName   string `json:"nickname"`
    }
)
//定义了一个服务叫user-api
service user-api{
    //获取接口的名字叫获取用户信息
    @doc "获取用户信息"
    //对应的hanlder即controller是userInfo
    @handler userInfo
    //请求方法是post,路径是/user/info,参数是UserInfoReq,返回值是UserInfoResp
    post /user/info (UserInfoReq) returns (UserInfoResp)
}
  1. 执行下面命令来生产api业务代码
cd user-api/api
##           指定哪个api 生成到哪个路径 指定风格比如gozero(默认), go_zero, goZero等
goctl api go -api *.api -dir ../  --style=goZero
Done.
  1. 执行完成后会生成对应的代码,如下图。
    在这里插入图片描述
  2. 执行go mod tidy下载所需要的依赖
  3. 然后你只需要在logic/userInfoLogic.go文件里编写业务逻辑即可,如下图。
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值