Package org.springframework.http.codec.protobuf

# Class ProtobufHttpMessageWriter

java.lang.Object
org.springframework.http.codec.EncoderHttpMessageWriter<com.google.protobuf.Message>
org.springframework.http.codec.protobuf.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:
  Sebastien Deleuze
See Also:
  - `ProtobufEncoder`

## Constructor Summary

Constructors
Constructor
Description
`ProtobufHttpMessageWriter()`
Create a new `ProtobufHttpMessageWriter` with a default `ProtobufEncoder`.
`ProtobufHttpMessageWriter(org.springframework.core.codec.Encoder<com.google.protobuf.Message> encoder)`
Create a new `ProtobufHttpMessageWriter` with the given encoder.

## Method Summary

Modifier and Type
Method
Description
`reactor.core.publisher.Mono<Void>`
`write(Publisher<? extends com.google.protobuf.Message> inputStream, org.springframework.core.ResolvableType elementType, MediaType mediaType, ReactiveHttpOutputMessage message, Map<String,Object> hints)`
Write a given stream of object to the output message.

### Methods inherited from class org.springframework.http.codec.EncoderHttpMessageWriter

`canWrite, getEncoder, getWritableMediaTypes, getWritableMediaTypes, getWriteHints, write`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### ProtobufHttpMessageWriter

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

### ProtobufHttpMessageWriter

public ProtobufHttpMessageWriter(org.springframework.core.codec.Encoder<com.google.protobuf.Message> encoder)
Create a new `ProtobufHttpMessageWriter` with the given encoder.

Parameters:
  `encoder` - the Protobuf message encoder to use

## Method Details

### write

public reactor.core.publisher.Mono<Void> write(Publisher<? extends com.google.protobuf.Message> inputStream, org.springframework.core.ResolvableType elementType, @Nullable MediaType mediaType, ReactiveHttpOutputMessage message, Map<String,Object> hints)
Description copied from interface: `HttpMessageWriter`
Write a 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