trait FramedEntityStreamingDirectives extends MarshallingDirectives
Allows the MarshallingDirectives.entity directive to extract a akka.stream.scaladsl.Source of elements.
See common.EntityStreamingSupport for useful default framing Flow
instances and
support traits such as SprayJsonSupport
(or your other favourite JSON library) to provide the needed Marshaller s.
- Grouped
- Alphabetic
- By Inheritance
- FramedEntityStreamingDirectives
- MarshallingDirectives
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Marshalling directives
- def as[T](implicit um: FromRequestUnmarshaller[T]): FromRequestUnmarshaller[T]
Returns the in-scope FromRequestUnmarshaller for the given type.
Returns the in-scope FromRequestUnmarshaller for the given type.
- Definition Classes
- MarshallingDirectives
- def completeWith[T](marshaller: ToResponseMarshaller[T])(inner: ((T) => Unit) => Unit): Route
Uses the marshaller for the given type to produce a completion function that is passed to its inner function.
Uses the marshaller for the given type to produce a completion function that is passed to its inner function. You can use it do decouple marshaller resolution from request completion.
- Definition Classes
- MarshallingDirectives
- def entity[T](um: FromRequestUnmarshaller[T]): Directive1[T]
Unmarshalls the requests entity to the given type passes it to its inner Route.
Unmarshalls the requests entity to the given type passes it to its inner Route. If there is a problem with unmarshalling the request is rejected with the Rejection produced by the unmarshaller.
- Definition Classes
- MarshallingDirectives
- def handleWith[A, B](f: (A) => B)(implicit um: FromRequestUnmarshaller[A], m: ToResponseMarshaller[B]): Route
Completes the request using the given function.
Completes the request using the given function. The input to the function is produced with the in-scope entity unmarshaller and the result value of the function is marshalled with the in-scope marshaller.
- Definition Classes
- MarshallingDirectives
- def instanceOf[T](implicit m: ToResponseMarshaller[T]): ToResponseMarshaller[T]
Returns the in-scope Marshaller for the given type.
Returns the in-scope Marshaller for the given type.
- Definition Classes
- MarshallingDirectives
Ungrouped
- type RequestToSourceUnmarshaller[T] = Unmarshaller[HttpRequest, Source[T, NotUsed]]
- final def asSourceOf[T](support: EntityStreamingSupport)(implicit um: FromByteStringUnmarshaller[T]): RequestToSourceUnmarshaller[T]
Extracts entity as akka.stream.scaladsl.Source of elements of type
T
.Extracts entity as akka.stream.scaladsl.Source of elements of type
T
. This is achieved by applying the implicitly provided (in the following order):- 1st: chunk-up the incoming ByteStrings by applying the
Content-Type
-aware framing - 2nd: apply the Unmarshaller (from ByteString toT
) for each of the respective "chunks" (e.g. for each JSON element contained within an array).The request will be rejected with an akka.http.scaladsl.server.UnsupportedRequestContentTypeRejection if its ContentType is not supported by the used
framing
orunmarshaller
.Cancelling extracted akka.stream.scaladsl.Source closes the connection abruptly (same as cancelling the
entity.dataBytes
).See also MiscDirectives.withoutSizeLimit as you may want to allow streaming infinite streams of data in this route. By default the uploaded data is limited by the
akka.http.parsing.max-content-length
. - final def asSourceOf[T](implicit um: FromByteStringUnmarshaller[T], support: EntityStreamingSupport): RequestToSourceUnmarshaller[T]
Extracts entity as akka.stream.scaladsl.Source of elements of type
T
.Extracts entity as akka.stream.scaladsl.Source of elements of type
T
. This is achieved by applying the implicitly provided (in the following order):- 1st: chunk-up the incoming ByteStrings by applying the
Content-Type
-aware framing - 2nd: apply the Unmarshaller (from ByteString toT
) for each of the respective "chunks" (e.g. for each JSON element contained within an array).The request will be rejected with an akka.http.scaladsl.server.UnsupportedRequestContentTypeRejection if its ContentType is not supported by the used
framing
orunmarshaller
.Cancelling extracted akka.stream.scaladsl.Source closes the connection abruptly (same as cancelling the
entity.dataBytes
).See also MiscDirectives.withoutSizeLimit as you may want to allow streaming infinite streams of data in this route. By default the uploaded data is limited by the
akka.http.parsing.max-content-length
.