cancelRejections

Signature

def cancelRejections(classes: Class[_]*): Directive0 
def cancelRejections(cancelFilter: Rejection 

Description

Adds a TransformationRejectionTransformationRejection 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 org.apache.pekko.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();