私はscalaとAkka-Httpの初心者です。残りのサービスを書くための Akka-Http の実験。ヘッダーに基づいて json または protobuf を返す必要がありAccept
ます。
optionalHeaderValueByName("Accept"){ contentType =>
if(contentType == Some(protoEncode)) {
complete {
NewsService.getNewsList().map {
case stories: List[Story] => HttpResponse(entity = HttpEntity(ContentType(protoEncoding), StoryList(stories).toProto().build().toByteArray))
}
}
} else {
complete {
NewsService.getNewsList().map {
case stories: List[Story] => StoryList(stories)
}
}
}
コードの繰り返しが発生していることがわかるように、このような状況を回避するために設計を最適化および一般化するための最良の方法を誰でも提案できます。