Class KotlinSerializationProtobufHttpMessageConverter

All Implemented Interfaces:
HttpMessageConverter<Object>, SmartHttpMessageConverter<Object>

public class KotlinSerializationProtobufHttpMessageConverter extends KotlinSerializationBinaryHttpMessageConverter<kotlinx.serialization.protobuf.ProtoBuf>
Implementation of HttpMessageConverter that can read and write Protocol Buffers using kotlinx.serialization. It supports application/x-protobuf, application/octet-stream, and application/vnd.google.protobuf.

As of Spring Framework 7.0, by default it only converts types annotated with @Serializable at type or generics level.

Alternative constructors with a Predicate<ResolvableType> parameter can be used to customize this behavior. For example, new KotlinSerializationProtobufHttpMessageConverter(type -> true) will convert all types supported by Kotlin Serialization, including unannotated Kotlin enumerations, numbers, characters, booleans and strings.

Since:
6.0
Author:
Iain Henderson, Sebstien Deleuze
  • Constructor Details

    • KotlinSerializationProtobufHttpMessageConverter

      public KotlinSerializationProtobufHttpMessageConverter()
      Construct a new converter using ProtoBuf.Default instance which only converts types annotated with @Serializable at type or generics level.
    • KotlinSerializationProtobufHttpMessageConverter

      public KotlinSerializationProtobufHttpMessageConverter(Predicate<ResolvableType> typePredicate)
      Construct a new converter using ProtoBuf.Default instance which only converts types for which the specified predicate returns true.
      Since:
      7.0
    • KotlinSerializationProtobufHttpMessageConverter

      public KotlinSerializationProtobufHttpMessageConverter(kotlinx.serialization.protobuf.ProtoBuf protobuf)
      Construct a new converter using the provided ProtoBuf instance which only converts types annotated with @Serializable at type or generics level.
    • KotlinSerializationProtobufHttpMessageConverter

      public KotlinSerializationProtobufHttpMessageConverter(kotlinx.serialization.protobuf.ProtoBuf protobuf, Predicate<ResolvableType> typePredicate)
      Construct a new converter using the provided ProtoBuf instance which only converts types for which the specified predicate returns true.
      Since:
      7.0