Иметь класс, принимающий инициализированный пружиной объектный картограф Джексона:
class FuelDeserializer(val objectMapper: ObjectMapper) {
inline fun <reified T : Any> deserialize() = object : ResponseDeserializable<T>
{
override fun deserialize(inputStream: InputStream): T? {
return objectMapper.readValue(inputStream)
}
override fun deserialize(reader: Reader): T? {
return objectMapper.readValue(reader)
}
override fun deserialize(bytes: ByteArray): T? {
return objectMapper.readValue(bytes)
}
override fun deserialize(content: String): T? {
return objectMapper.readValue(content)
}
}
}
Этот класс может быть добавлен к вам.
@Controller
class PdfGeneratorApi(
val fuelDeserializer: FuelDeserializer
) {
fun postSomething(): ResponseEntity<?> {
"http://exampl.com"
.httpPost()
.body("Something to post")
.responseObject<MyObject>(fuelDeserializer.deserialize()) {_, _, result ->
when (result) {
is Result.Failure -> logger.warn(result.getException()) { "Failure while posting" }
is Result.Success -> ResponseEntity.ok(result.get())
}
}
}