Interface HttpMessageConverter<T>

Type Parameters:
T - the converted object type
All Known Subinterfaces:
GenericHttpMessageConverter<T>, SmartHttpMessageConverter<T>
All Known Implementing Classes:
AbstractGenericHttpMessageConverter, AbstractHttpMessageConverter, AbstractJackson2HttpMessageConverter, AbstractJaxb2HttpMessageConverter, AbstractJsonHttpMessageConverter, AbstractKotlinSerializationHttpMessageConverter, AbstractSmartHttpMessageConverter, AbstractWireFeedHttpMessageConverter, AbstractXmlHttpMessageConverter, AllEncompassingFormHttpMessageConverter, AtomFeedHttpMessageConverter, BufferedImageHttpMessageConverter, ByteArrayHttpMessageConverter, FormHttpMessageConverter, GsonHttpMessageConverter, Jaxb2CollectionHttpMessageConverter, Jaxb2RootElementHttpMessageConverter, JsonbHttpMessageConverter, KotlinSerializationBinaryHttpMessageConverter, KotlinSerializationCborHttpMessageConverter, KotlinSerializationJsonHttpMessageConverter, KotlinSerializationProtobufHttpMessageConverter, KotlinSerializationStringHttpMessageConverter, MappingJackson2CborHttpMessageConverter, MappingJackson2HttpMessageConverter, MappingJackson2SmileHttpMessageConverter, MappingJackson2XmlHttpMessageConverter, MappingJackson2YamlHttpMessageConverter, MarshallingHttpMessageConverter, ObjectToStringHttpMessageConverter, ProtobufHttpMessageConverter, ProtobufJsonFormatHttpMessageConverter, ResourceHttpMessageConverter, ResourceRegionHttpMessageConverter, RssChannelHttpMessageConverter, SourceHttpMessageConverter, StringHttpMessageConverter

public interface HttpMessageConverter<T>
Strategy interface for converting from and to HTTP requests and responses.
Since:
3.0
Author:
Arjen Poutsma, Juergen Hoeller, Rossen Stoyanchev
See Also:
  • Method Details

    • canRead

      boolean canRead(Class<?> clazz, @Nullable MediaType mediaType)
      Indicates whether the given class can be read by this converter.
      Parameters:
      clazz - the class to test for readability
      mediaType - the media type to read (can be null if not specified); typically the value of a Content-Type header.
      Returns:
      true if readable; false otherwise
    • canWrite

      boolean canWrite(Class<?> clazz, @Nullable MediaType mediaType)
      Indicates whether the given class can be written by this converter.
      Parameters:
      clazz - the class to test for writability
      mediaType - the media type to write (can be null if not specified); typically the value of an Accept header.
      Returns:
      true if writable; false otherwise
    • getSupportedMediaTypes

      List<MediaType> getSupportedMediaTypes()
      Return the list of media types supported by this converter. The list may not apply to every possible target element type and calls to this method should typically be guarded via canWrite(clazz, null. The list may also exclude MIME types supported only for a specific class. Alternatively, use getSupportedMediaTypes(Class) for a more precise list.
      Returns:
      the list of supported media types
    • getSupportedMediaTypes

      default List<MediaType> getSupportedMediaTypes(Class<?> clazz)
      Return the list of media types supported by this converter for the given class. The list may differ from getSupportedMediaTypes() if the converter does not support the given Class or if it supports it only for a subset of media types.
      Parameters:
      clazz - the type of class to check
      Returns:
      the list of media types supported for the given class
      Since:
      5.3.4
    • read

      T read(Class<? extends T> clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException
      Read an object of the given type from the given input message, and returns it.
      Parameters:
      clazz - the type of object to return. This type must have previously been passed to the canRead method of this interface, which must have returned true.
      inputMessage - the HTTP input message to read from
      Returns:
      the converted object
      Throws:
      IOException - in case of I/O errors
      HttpMessageNotReadableException - in case of conversion errors
    • write

      void write(T t, @Nullable MediaType contentType, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException
      Write a given object to the given output message.
      Parameters:
      t - the object to write to the output message. The type of this object must have previously been passed to the canWrite method of this interface, which must have returned true.
      contentType - the content type to use when writing. May be null to indicate that the default content type of the converter must be used. If not null, this media type must have previously been passed to the canWrite method of this interface, which must have returned true.
      outputMessage - the message to write to
      Throws:
      IOException - in case of I/O errors
      HttpMessageNotWritableException - in case of conversion errors