import com.github.ljtfreitas.restify.http.client.message.ContentType;
import com.github.ljtfreitas.restify.http.client.message.converter.HttpMessageReadException;
import com.github.ljtfreitas.restify.http.client.message.converter.HttpMessageReader;
import com.github.ljtfreitas.restify.http.client.message.converter.HttpMessageWriteException;
import com.github.ljtfreitas.restify.http.client.message.converter.HttpMessageWriter;
import com.github.ljtfreitas.restify.http.client.message.request.HttpRequestMessage;
import com.github.ljtfreitas.restify.http.client.message.response.HttpResponseMessage;
public class MyCustomConverter implements HttpMessageReader<Object>, HttpMessageWriter<Object> {
public ContentType contentType() {
return ContentType.of("text/whatever");
public boolean canWrite(Class<?> type) {
// verifica se essa implementação é capaz de serializar o tipo de objeto
public void write(Object body, HttpRequestMessage httpRequestMessage) throws HttpMessageWriteException {
// escreve o objeto no corpo da requisição
public boolean canRead(Type type) {
// verifica se essa implementação é capaz de deserializar a resposta para esse tipo de objeto
public Object read(HttpResponseMessage httpResponseMessage, Type expectedType) throws HttpMessageReadException {
// lê a resposta e converte para o objeto esperado
MyApi myApi = new RestifyProxyBuilder()
.add(new MyCustomConverter())