Protobuf输入验证和模型翻译

时间:2018-01-31 08:28:58

标签: scala protocol-buffers scalapb

我正在一家公司,我们目前正在使用protobuf3(在我的情况下使用scalapb)进行大量的内部沟通。由于'required is forever'参数,此版本的protobuf取消了以前版本的optionalrequired标签。从协议的角度来看,我可以理解这个论点,但是当所有嵌套消息都包含在Option中时,这至少给我们留下了一个序列化的结果,它远离我们的实际域模型。

简单而丑陋的恕我直言,只要在访问消息字段时执行myProto.myField.getOrElse {throw Exception("bla"},但我不希望在字段必须时将大量getOreElse散布在我的代码库中在场。

我的问题是,是否有:

  1. 一个可以帮助我使用我自己的案例类将protobuf消息翻译成我的域模型的库?或
  2. 一种(相对)简单的方法,我自己以一种普遍的方式做这个,没有大量的样板?我自己做了一些反思,但是我对Scala很新。如何将scalapb.descriptors.FieldDescriptor映射到正确类型的实际值是不明显的。
  3. 由于

0 个答案:

没有答案