gPRC with JSON
本文介绍了如何混用 gRPC 和 JSON。尽管你可以用 Protobuf,gRPC 其实是编码无关的 RPC 工具,例如本文,你可以用 JSON 作为序列和反序列化层。为什么要这么做呢?因为有时候你不需要所有 gRPC 的特性,可能想跟自己的项目更多结合一些,但又想拥有某些 gRPC 的好处。
本文使用了 Gson: 允许你可以提供类,将实例和JSON数据互转。
Service: 服务就是方法的集合(a Service is a collection of Methods.)。一个方法要提供名字,Marshaller(如何解码请求,如何编码响应)。
你要做的事情是
- 提供一个 Marshaller 实现,内部编码解码 JSON 数据到类实例。
- 注册方法的时候,也登记上自定义的 Marshaller。
其他使用上和别的 gRPC 没有区别。
总之,如果你想用 gRPC 做 RPC 框架,又不想用 Protobuf,那你可以尝试一下用这种方法接上别的序列化协议。