Пусть akka-http создаст RequestEntity
самостоятельно, вместо того, чтобы передавать json как String
самостоятельно.
Вам просто нужно передать trigger
в качестве второго параметра Post.apply
как есть.
Post("/tasks", trigger) ~> addCredentials(OAuth2BearerToken(VALID_TOKEN)) ~> Route.seal(route) ~> check {
status shouldBe StatusCodes.OK
}
Для этого потребуется ToEntityMarshaller[Trigger]
, доступный в вашем неявном контексте.
И вы можете добавить его точно так же, как в своем определении маршрута, импортировав / расширив de.heikoseeberger.akkahttpargonaut.ArgonautSupport
и argonaut CodecJson[Trigger]
, если вы используете, например, argonaut.
В случае, если выхотите передать произвольное строковое значение, сделайте
Post("/tasks").withEntity(ContentTypes.`application/json`, someJsonAsString) ~> addCredentials(OAuth2BearerToken(VALID_TOKEN)) ~> Route.seal(route) ~> check {
status shouldBe StatusCodes.OK
}