朵小喵儿|Go 每日一库之云原生 go-zero 微服务框架( 二 )

也可以通过 goctl 生成 api 模本文件 , 命令如下:
goctl api -o greet.api

  1. 生成 go 服务端代码
goctl api go -api greet.api -dir greet生成的文件结构如下:
├── greet│├── etc││└── greet-api.json// 配置文件│├── greet.go// main文件│└── internal│├── config││└── config.go// 配置定义│├── handler││├── greethandler.go// get/put/post/delete等路由定义文件││└── routes.go// 路由列表│├── logic││└── greetlogic.go// 请求逻辑处理文件│├── svc││└── servicecontext.go // 请求上下文 , 可以传入mysql, redis等依赖│└── types│└── types.go// 请求、返回等类型定义└── greet.api// api描述文件生成的代码可以直接运行:
cd greetgo run greet.go -f etc/greet-api.json默认侦听在 8888 端口(可以在配置文件里修改) , 可以通过 curl 请求:
【朵小喵儿|Go 每日一库之云原生 go-zero 微服务框架】?go-zero git:(master) curl -w "\ncode: %{http_code}\n" http://localhost:8888/greet/from/kevin{"code":0}code: 200编写业务代码:
  • 可以在 servicecontext.go 里面传递依赖给 logic , 比如 mysql, redis 等
  • 在 api 定义的 get/post/put/delete 等请求对应的 logic 里增加业务处理逻辑
  1. 可以根据 api 文件生成前端需要的 Java, TypeScript, Dart, JavaScript 代码
goctl api java -api greet.api -dir greetgoctl api dart -api greet.api -dir greet...7. Benchmark
朵小喵儿|Go 每日一库之云原生 go-zero 微服务框架benchmark
测试代码见这里:
8. 项目地址