命令行工具¶
turbo create package_path ServiceName -r (grpc|thrift)¶
‘turbo create’ 用来创建一个新项目,包含了可直接运行的HTTP server和 gRPC/Thrfit server。
‘ServiceName’ 必须 是一个驼峰(CamelCase)字符串。
项目目录结构:
$ turbo create package/path/to/yourservice YourService -r grpc
$ cd $GOPATH/src/package/path/to/yourservice
$ tree
.
|-- gen
| |-- grpcfields.yaml
| |-- grpcswitcher.go
| `-- proto
| `-- yourservice.pb.go
|-- grpcapi
| |-- component
| | `-- components.go
| `-- yourserviceapi.go
|-- grpcservice
| |-- impl
| | `-- yourserviceimpl.go
| `-- yourservice.go
|-- main.go
|-- service.yaml
`-- yourservice.proto
turbo generate package_path -r (grpc/thrift) -I (absolute_path_to_proto/thrift_files) -I …¶
‘turbo generate’ 用来生成 switcher.go 和 [service_name].pb.go,生在文件放在’gen’目录下.
当 service.yaml 或者 [service_name].proto|.thrift有改动时,这个命令很有用,
比如添加了新的API,修改了已有的API定义,修改了url到service接口的映射关系等。
例子:
$ turbo generate package/path/to/yourservice -r grpc
-I $GOPATH/src/package/path/to/yourservice -I $GOPATH/src/shared
“-I” 可以重复多次, 比如你有一个公共的IDL文件 “shared.proto” 的话,公共文件的绝对路径根目录可以用”-I”加进来。