У меня есть маршрут следующим образом:
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")
}
}
}
}
Тип содержимого моего ответа всегда должен быть application/json
, как я установил для запроса get
. Однако то, что я получаю в своих тестах, text/plain
. Как правильно установить тип контента в ответе?
С другой стороны, документация akka-http является одним из самых бесполезных кусков мусора, которые я когда-либо видел. Почти каждая ссылка на пример кода нарушена, и их объяснения просто указывают на очевидность. Javadoc не имеет примера кода, и я не мог найти свою кодовую базу в Github, поэтому изучение их модульных тестов также не может быть и речи.