FramedEntityStreamingDirectives

org.apache.pekko.http.scaladsl.server.directives.FramedEntityStreamingDirectives

Allows the MarshallingDirectives.entity directive to extract a pekko.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.

Attributes

Source
FramedEntityStreamingDirectives.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait Directives
object Directives
class HttpApp

Members list

Grouped members

marshalling

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.

Attributes

Inherited from:
MarshallingDirectives
Source
MarshallingDirectives.scala
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. You can use it do decouple marshaller resolution from request completion.

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.

Attributes

Inherited from:
MarshallingDirectives
Source
MarshallingDirectives.scala

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.

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.

Attributes

Inherited from:
MarshallingDirectives
Source
MarshallingDirectives.scala
def handleWith[A, B](f: A => B)(implicit um: FromRequestUnmarshaller[A], m: ToResponseMarshaller[B]): Route

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.

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.

Attributes

Inherited from:
MarshallingDirectives
Source
MarshallingDirectives.scala

Returns the in-scope Marshaller for the given type.

Returns the in-scope Marshaller for the given type.

Attributes

Inherited from:
MarshallingDirectives
Source
MarshallingDirectives.scala

Value members

Concrete methods

Extracts entity as pekko.stream.scaladsl.Source of elements of type T. This is achieved by applying the implicitly provided (in the following order):

Extracts entity as pekko.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 to T) for each of the respective "chunks" (e.g. for each JSON element contained within an array).

The request will be rejected with an pekko.http.scaladsl.server.UnsupportedRequestContentTypeRejection if its ContentType is not supported by the used framing or unmarshaller.

Cancelling extracted pekko.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 pekko.http.parsing.max-content-length.

Attributes

Source
FramedEntityStreamingDirectives.scala

Extracts entity as pekko.stream.scaladsl.Source of elements of type T. This is achieved by applying the implicitly provided (in the following order):

Extracts entity as pekko.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 to T) for each of the respective "chunks" (e.g. for each JSON element contained within an array).

The request will be rejected with an pekko.http.scaladsl.server.UnsupportedRequestContentTypeRejection if its ContentType is not supported by the used framing or unmarshaller.

Cancelling extracted pekko.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 pekko.http.parsing.max-content-length.

Attributes

Source
FramedEntityStreamingDirectives.scala