cancelRejections
Signature
def cancelRejections(classes: Class[_]*): Directive0
def cancelRejections(cancelFilter: Rejection => Boolean): Directive0
Description
Adds a TransformationRejection
TransformationRejection
cancelling all rejections created by the inner route for which the condition argument function returns true
.
See also cancelRejection, for canceling a specific rejection.
Read Rejections to learn more about rejections.
For more advanced handling of rejections refer to the handleRejections directive which provides a nicer DSL for building rejection handlers.
Example
- Scala
-
sourcedef isMethodRejection: Rejection => Boolean = {
case MethodRejection(_) => true
case _ => false
}
val route =
cancelRejections(isMethodRejection) {
post {
complete("Result")
}
}
// tests:
Get("/") ~> route ~> check {
rejections shouldEqual Nil
handled shouldEqual false
}
- Java
-
sourceimport static akka.http.javadsl.server.Directives.cancelRejections;
final Predicate<Rejection> isMethodRejection = p -> p instanceof MethodRejection;
final Route route = cancelRejections(
isMethodRejection, () -> post(() -> complete("Result"))
);
// tests:
runRouteUnSealed(route, HttpRequest.GET("/"))
.assertRejections();
Found an error in this documentation? The source code for this page can be found
here.
Please feel free to edit and contribute a pull request.