1
0
mirror of https://github.com/chai2010/advanced-go-programming-book.git synced 2025-05-27 14:52:20 +00:00

Merge pull request #214 from fuwensun/pr4-2-1d

fixed typos
This commit is contained in:
chai2010 2018-07-30 20:23:30 +08:00 committed by GitHub
commit 02e49cfc6c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -279,7 +279,7 @@ func (p *netrpcPlugin) buildServiceSpec(svc *descriptor.ServiceDescriptorProto)
}
```
其中输入参数是`*descriptor.ServiceDescriptorProto`类型,完整描述了一个服务的所有信息。然后通过`svc.GetName()`就可以获取Protobuf文件中定义对服务对名字。Protobuf文件中的名字转为Go语言对名字后需要通过`generator.CamelCase`函数进行一次转换。类似的在for循环中我们通过`m.GetName()`获取方法的名字然后再转为Go语言中对应的名字。比较复杂的是对输入和输出参数名字的解析首先需要通过`m.GetInputType()`获取输入参数的类型,然后通过`p.ObjectNamed`类型对应的类对象信息,最后获取类对象的名字。
其中输入参数是`*descriptor.ServiceDescriptorProto`类型,完整描述了一个服务的所有信息。然后通过`svc.GetName()`就可以获取Protobuf文件中定义的服务的名字。Protobuf文件中的名字转为Go语言对名字后需要通过`generator.CamelCase`函数进行一次转换。类似的在for循环中我们通过`m.GetName()`获取方法的名字然后再转为Go语言中对应的名字。比较复杂的是对输入和输出参数名字的解析首先需要通过`m.GetInputType()`获取输入参数的类型,然后通过`p.ObjectNamed`类型对应的类对象信息,最后获取类对象的名字。
然后我们就可以基于buildServiceSpec方法构造的服务的元信息生成服务的代码