【发布时间】:2015-12-16 01:08:41
【问题描述】:
我是 scala 和 Akka-Http 的新手。试验 Akka-Http 来编写休息服务。我必须根据 Accept 标头返回 json 或 protobuf。
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)
}
}
}
正如您所见,代码重复正在发生,任何人都可以建议优化和概括设计以避免这种情况的最佳方法。
【问题讨论】:
标签: scala akka spray akka-http