@FunctionalInterface public interface ServerServiceCall<Request,Response> extends ServiceCall<Request,Response>
ServiceCall.invoke(Object), rather,
invokeWithHeaders(RequestHeader, Object) should be called. Invocation of the former may result in
an UnsupportedOperationException being thrown.
In some cases, where the underlying transport doesn't allow sending a header after the request message has been
received (eg WebSockets), the response header may be ignored. In these cases, Lagom will make a best effort attempt
at determining whether there was custom information in the response header, and if so, log a warning that it wasn't
set.
As this is a functional interface, it is generally advised that you implement it using a lambda.
If you want to actually handle the headers in a service call, it is recommended that rather than implementing this
interface, you use HeaderServiceCall, which makes the
invokeWithHeaders(RequestHeader, Object) method abstract so that it can be implemented with a
lambda.| Modifier and Type | Method and Description |
|---|---|
default ServerServiceCall<Request,Response> |
handleRequestHeader(java.util.function.Function<RequestHeader,RequestHeader> handler)
Make any modifications necessary to the request header.
|
default <T> ServerServiceCall<Request,T> |
handleResponseHeader(java.util.function.BiFunction<ResponseHeader,Response,T> handler)
Transform the response using the given function that takes the response header and the response.
|
default java.util.concurrent.CompletionStage<akka.japi.Pair<ResponseHeader,Response>> |
invokeWithHeaders(RequestHeader requestHeader,
Request request)
Invoke the given action with the request and response headers.
|
invoke, invoke, withResponseHeaderdefault java.util.concurrent.CompletionStage<akka.japi.Pair<ResponseHeader,Response>> invokeWithHeaders(RequestHeader requestHeader, Request request)
requestHeader - The request header.request - The request message.default <T> ServerServiceCall<Request,T> handleResponseHeader(java.util.function.BiFunction<ResponseHeader,Response,T> handler)
ServiceCallhandleResponseHeader in interface ServiceCall<Request,Response>handler - The handler.default ServerServiceCall<Request,Response> handleRequestHeader(java.util.function.Function<RequestHeader,RequestHeader> handler)
ServiceCallRequestHeader.DEFAULT exists for this
purpose. Generally, server implementations should not implement this method directly, rather, they should use
ServerServiceCall, which provides an appropriate implementation.handleRequestHeader in interface ServiceCall<Request,Response>handler - A function that takes in the request header representing the request, and transforms it.