Class ProtobufResponseConverterFunction
java.lang.Object
com.linecorp.armeria.server.protobuf.ProtobufResponseConverterFunction
- All Implemented Interfaces:
ResponseConverterFunction
@UnstableApi public final class ProtobufResponseConverterFunction extends Object implements ResponseConverterFunction
A
ResponseConverterFunction
which creates an HttpResponse
with
content-type: application/protobuf
or content-type: application/json; charset=utf-8
.
If the returned object is an instance of MessageLite
, the object can be converted to either
Protocol Buffers or
JSON format.
Conversion of multiple Protobuf messages
A sequence of Protocol Buffer messages can not be handled by thisResponseConverterFunction
,
because Protocol Buffers wire format is not self-delimiting.
See
Streaming Multiple Messages
for more information.
However, Publisher
, Stream
and Iterable
are supported when converting to
JSON array.
Note that this ResponseConverterFunction
is applied to an annotated service by default,
so you don't have to specify this converter explicitly unless you want to use your own JsonFormat.Printer
.
-
Constructor Summary
Constructors Constructor Description ProtobufResponseConverterFunction()
Creates an instance with the defaultJsonFormat.Printer
.ProtobufResponseConverterFunction(JsonFormat.Printer jsonPrinter)
Creates an instance with the specifiedJsonFormat.Printer
. -
Method Summary
Modifier and Type Method Description HttpResponse
convertResponse(ServiceRequestContext ctx, ResponseHeaders headers, Object result, HttpHeaders trailers)
ReturnsHttpResponse
instance corresponds to the givenresult
.
-
Constructor Details
-
ProtobufResponseConverterFunction
public ProtobufResponseConverterFunction()Creates an instance with the defaultJsonFormat.Printer
. -
ProtobufResponseConverterFunction
Creates an instance with the specifiedJsonFormat.Printer
.
-
-
Method Details
-
convertResponse
public HttpResponse convertResponse(ServiceRequestContext ctx, ResponseHeaders headers, @Nullable Object result, HttpHeaders trailers) throws ExceptionDescription copied from interface:ResponseConverterFunction
ReturnsHttpResponse
instance corresponds to the givenresult
. CallsResponseConverterFunction.fallthrough()
or throws aFallthroughException
if this converter cannot convert theresult
to theHttpResponse
.- Specified by:
convertResponse
in interfaceResponseConverterFunction
headers
- The HTTP headers that you might want to use to create theHttpResponse
. The status of headers isHttpStatus.OK
by default orHttpStatus.NO_CONTENT
if the annotated method returnsvoid
, unless you specify it withStatusCode
on the method. The headers also will include aMediaType
ifServiceRequestContext.negotiatedResponseMediaType()
returns it. If the method returnsHttpResult
, this headers is the same headers fromHttpResult.headers()
Please note that the additional headers set byServiceRequestContext.mutateAdditionalResponseHeaders(Consumer)
andAdditionalHeader
are not included in this headers.result
- The result of the service method.trailers
- The HTTP trailers that you might want to use to create theHttpResponse
. If the annotated method returnsHttpResult
, this trailers is the same trailers fromHttpResult.trailers()
. Please note that the additional trailers set byServiceRequestContext.mutateAdditionalResponseTrailers(Consumer)
andAdditionalTrailer
are not included in this trailers.- Throws:
Exception
-