ContentConverter
interface ContentConverter
A custom content converted that could be registered in ContentNegotiation feature for any particular content type Could provide bi-directional conversion implementation. One of the most typical examples of content converter is a json content converter that provides both serialization and deserialization
Functions
abstract suspend fun convertForReceive( Convert a value (RAW or intermediate) from receive pipeline (deserialize). Pipeline PipelineContext.subject has ApplicationReceiveRequest.value of type ByteReadChannel |
|
abstract suspend fun convertForSend( Convert a value to the specified contentType to a value suitable for sending (serialize).
Note that as far as ContentConverter could be registered multiple times with different content types
hence contentType could be different depends on what the client accepts (inferred from Accept header).
This function could ignore value if it is not suitable for conversion and return |
Inheritors
class GsonConverter : ContentConverter GSON converter for ContentNegotiation feature |
|
class JacksonConverter : ContentConverter install(ContentNegotiation) { register(ContentType.Application.Json, JacksonConverter()) } to be able to modify the objectMapper (eg. using specific modules and/or serializers and/or configuration options, you could use the following (as seen in the ktor-samples): install(ContentNegotiation) { jackson { configure(SerializationFeature.INDENT_OUTPUT, true) registerModule(JavaTimeModule()) |