goctl

文档文档地址(旧)

文档地址(新)

安装

GO111MODULE=on go get -u github.com/zeromicro/go-zero/tools/goctl@latest

# go版本1.16及以后
go install github.com/zeromicro/go-zero/tools/goctl@latest

常用命令示例

这个命令用于创建一个新的 API 项目。

示例:

goctl api new user

这个命令会创建一个新的名为 user 的 API 项目,包含默认的目录结构和文件。

输出:

  • user.api 文件,用于定义 API 接口。

  • 默认的服务结构和配置。


2. goctl api go -api <api-file> -dir <output-dir>

这个命令根据 .api 文件生成 Go 代码。

示例:

goctl api go -api user.api -dir ./user_service

这个命令会根据 user.api 文件,生成对应的 Go 代码,并将其存储在 ./user_service 目录中。

输出:

  • 生成的 Go 文件。

  • 自动创建服务的基础结构,如 handler, logic, svc 等。


3. goctl rpc new <service-name>

这个命令用于创建一个新的 RPC 服务。

示例:

goctl rpc new user

此命令会创建一个新的 RPC 服务,名为 user,并生成相应的文件结构。

输出:

  • 默认的 RPC 项目文件和目录结构。


4. goctl model gen <model-file>

此命令用于根据数据库表结构生成模型代码。

示例:

goctl model gen --sql user.sql

此命令会根据 user.sql 文件生成模型代码。文件中通常包含 SQL 表结构。

输出:

  • 根据 SQL 文件生成的 Go 模型代码。


5. goctl template list

此命令用于列出所有可用的模板。

示例:

goctl template list

执行此命令后,会列出 Go-Zero 提供的所有模板选项。


6. goctl generate

此命令会根据模板生成代码,通常需要配合其它命令一起使用。

示例:

goctl generate

此命令会根据配置生成相应的代码。


7. goctl build

这个命令会编译 Go 项目,生成可执行文件。

示例:

goctl build -o user_service ./user_service

该命令会编译 ./user_service 目录中的代码,并将可执行文件输出到 user_service


8. goctl api check

此命令用于检查 .api 文件的合法性。

示例:

goctl api check user.api

此命令会检查 user.api 文件的语法和结构是否合法,帮助你发现潜在的问题。


9. goctl doc

该命令用于生成 API 文档。

示例:

goctl doc user.api

此命令会生成 user.api 文件的 API 文档,通常是以 Markdown 格式输出。


10. goctl version

该命令用于查看 goctl 的当前版本。

示例:

goctl version

执行后会显示 goctl 的版本号。


1. goctl api dart

此命令用于根据 .api 文件生成 Dart 文件。

示例:

goctl api dart -api user.api -dir ./dart_user
  • -api:指定输入的 .api 文件路径。

  • -dir:指定 Dart 代码输出的目录。

这个命令会根据 user.api 文件生成 Dart 语言的代码,并将文件输出到 ./dart_user 目录。


2. goctl api doc

此命令用于根据 .api 文件生成文档文件。

示例:

goctl api doc -api user.api -dir ./docs

# 指定文件夹
goctl api doc -dir .
  • -api:指定输入的 .api 文件路径。

  • -dir:指定文档输出的目录。

此命令会生成 API 的文档,并将其保存到 ./docs 目录。


3. goctl api format

此命令用于格式化 .api 文件,使其符合规范。

示例:

goctl api format -api user.api

# 格式化文件夹
goctl api format -dir .
  • -api:指定需要格式化的 .api 文件路径。

此命令会格式化 user.api 文件,使其符合 Go-Zero 框架的 API 文件格式规范。


4. goctl api go

此命令根据 .api 文件生成 Go 代码。

示例:

goctl api go -api user.api -dir ./user_service
  • -api:指定输入的 .api 文件路径。

  • -dir:指定 Go 代码输出的目录。

此命令会根据 user.api 文件生成 Go 语言的代码,并将文件输出到 ./user_service 目录。


5. goctl api kt

此命令根据 .api 文件生成 Kotlin 代码。

示例:

goctl api kt -api user.api -dir ./kotlin_user
  • -api:指定输入的 .api 文件路径。

  • -dir:指定 Kotlin 代码输出的目录。

此命令会根据 user.api 文件生成 Kotlin 代码,并将其输出到 ./kotlin_user 目录。


6. goctl api new

此命令用于快速创建 API 服务。

示例:

goctl api new user

此命令会创建一个新的名为 user 的 API 服务,包含默认的文件结构和文件。


7. goctl api plugin

此命令用于根据自定义插件生成文件。

示例:

goctl api plugin -api user.api -dir ./custom_plugin
  • -api:指定输入的 .api 文件路径。

  • -dir:指定插件输出的目录。

此命令会根据 user.api 文件使用自定义插件生成文件,并将其输出到 ./custom_plugin 目录。


8. goctl api ts

此命令根据 .api 文件生成 TypeScript 代码。

示例:

goctl api ts -api user.api -dir ./ts_user
  • -api:指定输入的 .api 文件路径。

  • -dir:指定 TypeScript 代码输出的目录。

此命令会根据 user.api 文件生成 TypeScript 代码,并将其输出到 ./ts_user 目录。


9. goctl api validate

此命令用于验证 .api 文件是否符合规范。

示例:

goctl api validate -api user.api
  • -api:指定需要验证的 .api 文件路径。

此命令会验证 user.api 文件的结构是否正确,并返回相关的验证信息。


常用标志 (Flags)

这些标志可以在执行 goctl api 命令时与其他命令一起使用。

  • --branch string:指定远程模板的分支,默认使用 master 分支。通常与 --remote 一起使用。

    示例:

    goctl api --remote https://github.com/zeromicro/go-zero-template --branch dev new user
  • --home string:指定本地的 Go-Zero 模板路径。不能与 --remote 一起使用。

    示例:

    goctl api --home /path/to/your/template new user
  • --o string:输出一个样本的 .api 文件。

    示例:

    goctl api --o user_sample.api new user
  • --remote string:指定远程 Git 仓库的模板路径,优先于 --home

    示例:

    goctl api --remote https://github.com/zeromicro/go-zero-template new user

最后更新于