Я пробовал Akka-http и, надеюсь, кто-то может пролить свет на следующие вопросы:
-
Как создать разные маршруты на основе заголовка accept: в запросе? Например, я хочу, чтобы один путь кода обрабатывал "json" и один обрабатывал запросы "xml" (по умолчанию "json", если отсутствует заголовок)
-
В случаях, когда я не хочу, чтобы тип contentType был выведен, как я его определяю? Например, в приведенном ниже коде я пытаюсь запустить json через compactPrint(), но это меняет его на строку, следовательно, "text/plain". Я хочу переопределить это и сказать клиенту, что он все еще json.
Мой код выглядит примерно так:
...
path("api") {
get {
complete {
getStuff.map[ToResponseMarshallable] {
case Right(r) if r.isEmpty => List[String]().toJson.compactPrint
case Right(r) => r.toJson.compactPrint
case Left(e) => BadRequest -> e
}
}
}
}
...
Ответ в этом случае является текстовым/открытым, так как compactPrint создает строку. критика очень приветствуется.;)