akka-http: Como definir cabeçalhos de resposta
Eu tenho uma rota da seguinte maneira:
val route = {
logRequestResult("user-service") {
pathPrefix("user") {
get {
respondWithHeader(RawHeader("Content-Type", "application/json")) {
parameters("firstName".?, "lastName".?).as(Name) { name =>
findUserByName(name) match {
case Left(users) => complete(users)
case Right(error) => complete(error)
}
}
}
} ~
(put & entity(as[User])) { user =>
complete(Created -> s"Hello ${user.firstName} ${user.lastName}")
} ~
(post & entity(as[User])) { user =>
complete(s"Hello ${user.firstName} ${user.lastName}")
} ~
(delete & path(Segment)) { userId =>
complete(s"Hello $userId")
}
}
}
}
O tipo de conteúdo da minha resposta deve sempre serapplication/json
como eu configurei para oget
solicitação. No entanto, o que estou recebendo nos meus testes étext/plain
. Como defino o tipo de conteúdo corretamente na resposta?
Em uma nota lateral, a documentação do akka-http é um dos pedaços de lixo mais inúteis que eu já vi. Quase todos os links para códigos de exemplo estão quebrados e suas explicações apenas afirmam o óbvio. O Javadoc não tem exemplo de código e eu não consegui encontrar a base de código no Github, portanto, aprender com os testes de unidade também está fora de questão.