goctl api是goctl中的核心模塊之一,其可以通過.api文件一鍵快速生成一個(gè)api服務(wù),如果僅僅是啟動(dòng)一個(gè)go-zero的api演示項(xiàng)目, 你甚至都不用編碼,就可以完成一個(gè)api服務(wù)開發(fā)及正常運(yùn)行。在傳統(tǒng)的api項(xiàng)目中,我們要?jiǎng)?chuàng)建各級(jí)目錄,編寫結(jié)構(gòu)體, 定義路由,添加logic文件,這一系列操作,如果按照一條協(xié)議的業(yè)務(wù)需求計(jì)算,整個(gè)編碼下來大概需要5~6分鐘才能真正進(jìn)入業(yè)務(wù)邏輯的編寫, 這還不考慮編寫過程中可能產(chǎn)生的各種錯(cuò)誤,而隨著服務(wù)的增多,隨著協(xié)議的增多,這部分準(zhǔn)備工作的時(shí)間將成正比上升, 而goctl api則可以完全替代你去做這一部分工作,不管你的協(xié)議要定多少個(gè),最終來說,只需要花費(fèi)10秒不到即可完成。
其中的結(jié)構(gòu)體編寫,路由定義用api進(jìn)行替代,因此總的來說,省去的是你創(chuàng)建文件夾、添加各種文件及資源依賴的過程的時(shí)間。
$ goctl api -h
NAME:
goctl api - generate api related files
USAGE:
goctl api command [command options] [arguments...]
COMMANDS:
new fast create api service
format format api files
validate validate api file
doc generate doc files
go generate go files for provided api in yaml file
java generate java files for provided api in api file
ts generate ts files for provided api in api file
dart generate dart files for provided api in api file
kt generate kotlin code for provided api file
plugin custom file generator
OPTIONS:
-o value the output api file
--help, -h show help
從上文中可以看到,根據(jù)功能的不同,api包含了很多的自命令和flag,我們這里重點(diǎn)說明一下 go子命令,其功能是生成golang api服務(wù),我們通過goctl api go -h看一下使用幫助:
$ goctl api go -h
NAME:
goctl api go - generate go files for provided api in yaml file
USAGE:
goctl api go [command options] [arguments...]
OPTIONS:
--dir value the target dir
--api value the api file
--style value the file naming format, see [https://github.com/zeromicro/go-zero/tree/master/tools/goctl/config/readme.md]
$ goctl api go -api user.api -dir . -style gozero
更多建議: