我正在使用 Akka Http 2.4.7。对于 Json(使用 json4s),序列化是这样的:
entity(as[CaseClass]) { serialisedCaseClass => .... }
对于反序列化,我只返回一个案例类对象。
我想知道protobuf有类似的方法吗?
最佳答案
不,没有任何现成可用的东西(但我同意如果有的话那就太好了)。您当前需要构建自己的自定义解码器来执行此操作(从 akka-http 2.4.11 开始)。
您可以基于现有的 protobuf 定义构建自己的解码器。这是一个如何做到这一点的 stub :
case class Person(...)
implicit val personUnmarshaller: FromEntityUnmarshaller[Person] =
PredefinedFromEntityUnmarshallers.byteArrayUnmarshaller map { bytes =>
// bytes is an Array[Byte]
// call protobuf to do the unmarshalling
}
然后将此定义导入您的 route 。
关于scala - 如何在 akka http 中序列化/反序列化 protobuf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39440028/