Class StringResponseConverterFunction
java.lang.Object
com.linecorp.armeria.server.annotation.StringResponseConverterFunction
- All Implemented Interfaces:
ResponseConverterFunction
public final class StringResponseConverterFunction
extends Object
implements ResponseConverterFunction
A
ResponseConverterFunction
which creates an HttpResponse
when:
- the
result
is an instance ofCharSequence
- the
"content-type"
of theResponseHeaders
isMediaType.ANY_TEXT_TYPE
ResponseConverterFunction
is applied to an annotated service by default,
so you don't have to specify this converter explicitly.-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionconvertResponse
(ServiceRequestContext ctx, ResponseHeaders headers, @Nullable Object result, HttpHeaders trailers) ReturnsHttpResponse
instance corresponds to the givenresult
.isResponseStreaming
(Type resultType, @Nullable MediaType contentType) Returns whether anHttpResponse
of an annotated service should be streamed.
-
Constructor Details
-
StringResponseConverterFunction
public StringResponseConverterFunction()
-
-
Method Details
-
isResponseStreaming
Description copied from interface:ResponseConverterFunction
Returns whether anHttpResponse
of an annotated service should be streamed.null
if this converter cannot convert theresponseType
to anHttpResponse
.true
can be returned if the response is a streaming type, or theResponseConverterFunction
has not been optimized for theresponseType
through overriding this method for backward compatibility.This method is used as a performance optimization hint. If the
returnType
andproduceType
are not a streaming response, it is recommended to returnfalse
for the better performance.Note that you should never return
false
for a streaming response. The non-streaming response is aggregated before being sent.- Specified by:
isResponseStreaming
in interfaceResponseConverterFunction
- Parameters:
resultType
- the return type of the annotated service.contentType
- the negotiated producible media type of the annotated service.null
if the media type negotiation is not used for the service.
-
convertResponse
public HttpResponse convertResponse(ServiceRequestContext ctx, ResponseHeaders headers, @Nullable @Nullable Object result, HttpHeaders trailers) throws Exception Description copied from interface:ResponseConverterFunction
ReturnsHttpResponse
instance corresponds to the givenresult
. CallsResponseConverterFunction.fallthrough()
if this converter cannot convert theresult
to theHttpResponse
.- Specified by:
convertResponse
in interfaceResponseConverterFunction
- Parameters:
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
-