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

Link copied to clipboard
abstract suspend fun convertForReceive(context: PipelineContext<ApplicationReceiveRequest, ApplicationCall>): Any?

Convert a value (RAW or intermediate) from receive pipeline (deserialize). Pipeline PipelineContext.subject has ApplicationReceiveRequest.value of type ByteReadChannel

Link copied to clipboard
abstract suspend fun convertForSend(context: PipelineContext<Any, ApplicationCall>, contentType: ContentType, value: Any): Any?

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 null so in this case other registered converters could be tried or this function could be invoked with other content types it the converted has been registered multiple times with different content types