extractDataBytes

extractDataBytes

Description

Extracts the entities data bytes as Source[ByteString, Any] from the RequestContext.

The directive returns a stream containing the request data bytes.

Example

final Route route = extractDataBytes(data -> {
  final CompletionStage<Integer> sum = data.runFold(0, (acc, i) ->
    acc + Integer.valueOf(i.utf8String()), materializer());
  return onSuccess(() -> sum, s ->
    complete(HttpResponse.create().withEntity(HttpEntities.create(s.toString()))));
});

// tests:
final Iterator iterator = Arrays.asList(
  ByteString.fromString("1"),
  ByteString.fromString("2"),
  ByteString.fromString("3")).iterator();
final Source<ByteString, NotUsed> dataBytes = Source.fromIterator(() -> iterator);

testRoute(route).run(
  HttpRequest.POST("abc")
    .withEntity(HttpEntities.create(ContentTypes.TEXT_PLAIN_UTF8, dataBytes))
).assertEntity("6");

Contents