Я хочу опубликовать протобуф в приложении scala play. Я использую scala 2.11 и играю 2.7.4
Это то, что я использую.
@Singleton
class PoolListController @Inject()(cc: ControllerComponents)
extends AbstractController(cc) {
private val logger = Logger(getClass)
private val poolListService = new PoolListService(
hrn = "hrn:here:data::olp-here:here-3dds-jeremybr-test-catalog-09-14",
timeout = 120
)
def poolList(vendor: String) = Action { implicit request: Request[AnyContent] =>
val data = request.body.asRaw.get.asBytes()
println(vendor)
val byteArray = data match {
case Some(b) => b.toArray
case None =>
throw new Exception
}
// marshall the protobuf from Array[Byte] or InputStream here
Status(201)
}
}
Этот код возвращает akka.util.ByteString. Я не могу понять, как получить этот класс в метод parseFrom, который разбивает байты на объекты scala protobuf.
Вот локон, который я использую для тестирования.
curl -s -w "%{http_code}\n" -X POST -H "Content-Type: application/octet-stream" --data-binary "@test/v1/data.pb" http://localhost:9000/v1/pools
Заранее спасибо.