Как упорядочить приложение / октет-поток POSTed в protobuf Scala Play Controller - PullRequest
0 голосов
/ 01 апреля 2020

Я хочу опубликовать протобуф в приложении 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

Заранее спасибо.

...