Class OpenAiRestApi.OpenAiRestApiJacksonProvider

java.lang.Object
org.jboss.resteasy.reactive.common.providers.serialisers.AbstractJsonMessageBodyReader
io.quarkiverse.langchain4j.openai.OpenAiRestApi.OpenAiRestApiJacksonProvider
All Implemented Interfaces:
jakarta.ws.rs.ext.MessageBodyReader<Object>, jakarta.ws.rs.ext.MessageBodyWriter<Object>
Enclosing interface:
OpenAiRestApi

@Provider @ConstrainedTo(CLIENT) @Priority(5100) public static class OpenAiRestApi.OpenAiRestApiJacksonProvider extends org.jboss.resteasy.reactive.common.providers.serialisers.AbstractJsonMessageBodyReader implements jakarta.ws.rs.ext.MessageBodyWriter<Object>
We need a custom version of the Jackson provider because reading SSE values does not work properly with @ClientObjectMapper due to the lack of a complete context in those requests
  • Constructor Details

    • OpenAiRestApiJacksonProvider

      public OpenAiRestApiJacksonProvider()
  • Method Details

    • isReadable

      public boolean isReadable(Class<?> type, Type genericType, Annotation[] annotations, jakarta.ws.rs.core.MediaType mediaType)
      Normally this is not necessary, but if one uses the 'demo' key, then the response comes back as type text/html but the content is still JSON. Go figure...
      Specified by:
      isReadable in interface jakarta.ws.rs.ext.MessageBodyReader<Object>
      Overrides:
      isReadable in class org.jboss.resteasy.reactive.common.providers.serialisers.AbstractJsonMessageBodyReader
    • readFrom

      public Object readFrom(Class<Object> type, Type genericType, Annotation[] annotations, jakarta.ws.rs.core.MediaType mediaType, jakarta.ws.rs.core.MultivaluedMap<String,String> httpHeaders, InputStream entityStream) throws IOException, jakarta.ws.rs.WebApplicationException
      Specified by:
      readFrom in interface jakarta.ws.rs.ext.MessageBodyReader<Object>
      Throws:
      IOException
      jakarta.ws.rs.WebApplicationException
    • isWriteable

      public boolean isWriteable(Class<?> type, Type genericType, Annotation[] annotations, jakarta.ws.rs.core.MediaType mediaType)
      Specified by:
      isWriteable in interface jakarta.ws.rs.ext.MessageBodyWriter<Object>
    • writeTo

      public void writeTo(Object o, Class<?> type, Type genericType, Annotation[] annotations, jakarta.ws.rs.core.MediaType mediaType, jakarta.ws.rs.core.MultivaluedMap<String,Object> httpHeaders, OutputStream entityStream) throws IOException, jakarta.ws.rs.WebApplicationException
      Specified by:
      writeTo in interface jakarta.ws.rs.ext.MessageBodyWriter<Object>
      Throws:
      IOException
      jakarta.ws.rs.WebApplicationException