entity
Description
Unmarshalls the request entity to the given type and passes it to its inner Route. An unmarshaller
returns an Either
with Right(value)
if successful or Left(exception)
for a failure.
The entity
method will either pass the value
to the inner route or map the exception
to a
:class:akka.http.javadsl.server.Rejection
.
The entity
directive works in conjuction with as
and akka.http.scaladsl.unmarshalling
to
convert some serialized "wire format" value into a higher-level object structure.
The unmarshalling documentation explains this process in detail.
This directive simplifies extraction and error handling to the specified type from the request.
An unmarshaller will return a Left(exception)
in the case of an error. This is converted to a
akka.http.scaladsl.server.Rejection
within the entity
directive. The following table lists how exceptions
are mapped to rejections:
Left(exception) | Rejection |
ContentExpected |
RequestEntityExpectedRejection |
UnsupportedContentType |
UnsupportedRequestContentTypeRejection , which lists the supported types |
MaformedContent |
MalformedRequestContentRejection , with an error message and cause |
Examples
The following example uses spray-json
to unmarshall a json request into a simple Person
class. It utilizes SprayJsonSupport
via the PersonJsonSupport
object as the in-scope unmarshaller.
TODO: Add example snippets.
It is also possible to use the entity
directive to obtain raw JsValue
( spray-json ) objects, by simply using
as[JsValue]
, or any other JSON type for which you have marshallers in-scope.
TODO: Example snippets for JavaDSL are subject to community contributions! Help us complete the docs, read more about it here: write example snippets for Akka HTTP Java DSL #20466.
Contents