Как я могу программно выполнить Route
обработчика отклонения и получить результат HttpEntity
?Как я могу программно выполнить Route of rejection handler и получить результат HttpEntity?
Например, предполагая, что у меня есть RequestContext
объекта и Rejection
объекта, я хотел бы выполнить RejectionHandler.default
на нем и получить HttpEntity
.
Вот пример того, что я хотел бы сделать:
implicit def myRejectionHandler =
RejectionHandler.newBuilder()
.handleAll[Rejection] { rejections ⇒
def prefixEntity(entity: ResponseEntity): ResponseEntity = entity match {
case HttpEntity.Strict(contentType, data) => {
import spray.json._
val text = ErrorResponse(0, "Rejection", data.utf8String).toJson.prettyPrint
HttpEntity(ContentTypes.`application/json`, text)
}
case _ =>
throw new IllegalStateException("Unexpected entity type")
}
val route: Route = extractRequestContext { ctx =>
mapResponseEntity(prefixEntity) {
// Here I want result of `complete` route from RejectionHandler.default
}
}
route
}
.handleNotFound {
complete((NotFound, "Not here!"))
}
.result()
Можете ли вы предоставить образец кода, показывающий это. Его не нужно компилировать. Мне просто нужно понять поток кода. – cmbaxter
@cmbaxter Добавлено. – expert