diff --git a/doc/goctl.md b/doc/goctl.md index c5d14214..b7320b21 100644 --- a/doc/goctl.md +++ b/doc/goctl.md @@ -7,6 +7,11 @@ * 生成MongoDB CURD+Cache ## goctl使用说明 + +#### 快速生成服务 +* api: goctl api new xxxx +* rpc: goctl rpc new xxxx + #### goctl参数说明 `goctl api [go/java/ts] [-api user/user.api] [-dir ./src]` diff --git a/readme.md b/readme.md index 40dc4e60..bf13128b 100644 --- a/readme.md +++ b/readme.md @@ -107,61 +107,10 @@ go get -u github.com/tal-tech/go-zero 确保goctl可执行 -2. 定义API文件,比如greet.api,可以在vs code里安装`goctl`插件,支持api语法 - - ```go - type Request struct { - Name string `path:"name,options=you|me"` // 框架自动验证请求参数是否合法 - } - - type Response struct { - Message string `json:"message"` - } +2. 快速生成api服务 - service greet-api { - @server( - handler: GreetHandler - ) - get /greet/from/:name(Request) returns (Response); - } - ``` - - 也可以通过goctl生成api模本文件,命令如下: - - ```shell - goctl api -o greet.api - ``` - -3. 生成go服务端代码 - - ```shell - goctl api go -api greet.api -dir greet - ``` - - 生成的文件结构如下: - - ``` - ├── greet - │   ├── etc - │   │   └── greet-api.yaml // 配置文件 - │   ├── 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描述文件 - ``` - 生成的代码可以直接运行: - ```shell + goctl api new greet cd greet go run greet.go -f etc/greet-api.yaml ``` @@ -185,7 +134,7 @@ Content-Length: 0 * 可以在servicecontext.go里面传递依赖给logic,比如mysql, redis等 * 在api定义的get/post/put/delete等请求对应的logic里增加业务处理逻辑 -4. 可以根据api文件生成前端需要的Java, TypeScript, Dart, JavaScript代码 +3. 可以根据api文件生成前端需要的Java, TypeScript, Dart, JavaScript代码 ```shell goctl api java -api greet.api -dir greet