org.springframework.http.codec.protobuf

Class ProtobufHttpMessageWriter

  • All Implemented Interfaces:
    HttpMessageWriter<com.google.protobuf.Message>


    public class ProtobufHttpMessageWriter
    extends EncoderHttpMessageWriter<com.google.protobuf.Message>
    HttpMessageWriter that can write a protobuf Message and adds X-Protobuf-Schema, X-Protobuf-Message headers and a delimited=true parameter is added to the content type if a flux is serialized.

    For HttpMessageReader, just use new DecoderHttpMessageReader(new ProtobufDecoder()).

    Since:
    5.1
    Author:
    S├ębastien Deleuze
    See Also:
    ProtobufEncoder
    • Constructor Detail

      • ProtobufHttpMessageWriter

        public ProtobufHttpMessageWriter()
        Create a new ProtobufHttpMessageWriter with a default ProtobufEncoder.
      • ProtobufHttpMessageWriter

        public ProtobufHttpMessageWriter(Encoder<com.google.protobuf.Message> encoder)
        Create a new ProtobufHttpMessageWriter with the given encoder.
        Parameters:
        encoder - the Protobuf message encoder to use
    • Method Detail

      • write

        public reactor.core.publisher.Mono<java.lang.Void> write(org.reactivestreams.Publisher<? extends com.google.protobuf.Message> inputStream,
                                                                 ResolvableType elementType,
                                                                 @Nullable
                                                                 MediaType mediaType,
                                                                 ReactiveHttpOutputMessage message,
                                                                 java.util.Map<java.lang.String,java.lang.Object> hints)
        Description copied from interface: HttpMessageWriter
        Write an given stream of object to the output message.
        Specified by:
        write in interface HttpMessageWriter<com.google.protobuf.Message>
        Overrides:
        write in class EncoderHttpMessageWriter<com.google.protobuf.Message>
        Parameters:
        inputStream - the objects to write
        elementType - the type of objects in the stream which must have been previously checked via HttpMessageWriter.canWrite(ResolvableType, MediaType)
        mediaType - the content type for the write, possibly null to indicate that the default content type of the writer must be used.
        message - the message to write to
        hints - additional information about how to encode and write
        Returns:
        indicates completion or error