requestEntityEmpty

Signature

def requestEntityEmpty: Directive0 

Description

A filter that checks if the request entity is empty and only then passes processing to the inner route. Otherwise, the request is rejected.

See also requestEntityPresent for the opposite effect.

Example

Scala
sourceval route =
  concat(
    requestEntityEmpty {
      complete("request entity empty")
    },
    requestEntityPresent {
      complete("request entity present")
    })

// tests:
Post("/", "text") ~> Route.seal(route) ~> check {
  responseAs[String] shouldEqual "request entity present"
}
Post("/") ~> route ~> check {
  responseAs[String] shouldEqual "request entity empty"
}
Java
sourceimport static org.apache.pekko.http.javadsl.server.Directives.complete;
import static org.apache.pekko.http.javadsl.server.Directives.requestEntityEmpty;
import static org.apache.pekko.http.javadsl.server.Directives.requestEntityPresent;

final Route route =
    requestEntityEmpty(() -> complete("request entity empty"))
        .orElse(requestEntityPresent(() -> complete("request entity present")));

// tests:
testRoute(route).run(HttpRequest.POST("/")).assertEntity("request entity empty");
testRoute(route)
    .run(HttpRequest.POST("/").withEntity("foo"))
    .assertEntity("request entity present");