Serialização e deserialização
Definição
No java-restify
, serialização se refere ao mecanismo utilizado para escrever o corpo da requisição ; e deserialização se refere ao mecanismo utilizado para ler o corpo da resposta.
Ambos são feitos de maneira transparente; a serialização se aplica ao parâmetro do método que representa o corpo (anotado com @RequestBody
, no caso das anotações padrão), e a deserialização se aplica ao tipo de retorno do método.
Formatos
O formato utilizado na serialização e deserialização é determinado pelo cabeçalho Content-Type.
O java-restify
fornece várias implementações para lidar com tipos específicos de conteúdo, e essas implementações também influenciam argumentos e retornos de método que podem ser utilizados.
Os serializadores, responsáveis por converter um objeto para um determinado formato e escrever no corpo da requisição, são implementações da interface HttpMessageWriter
.
Os deserializadores, responsáveis por converter o corpo da resposta (em um formato qualquer) para um objeto, são implementações da interface HttpMessageReader
.
Essas duas interfaces extendem HttpMessageConverter
, que fornece o tipo de conteúdo que aquele objeto é capaz de lidar. Caso você precise serializar/deserializar formatos não suportados pelo java-restify
, basta implementar HttpMessageWriter
(para serialização) ou HttpMessageReader
(para deserialização) ou ambos, e registrar seu converter
customizado.
Os únicos converters
registrados por padrão são capazes de deserializar qualquer tipo de conteúdo (Content-Type=*/*
), e podem apenas ler respostas.
As demais implementações fornecidas pelo java-restify
estão em artefatos separados, e serão registradas automaticamente caso estejam disponíveis no classpath
; basta incluir a dependência adequada para o tipo de contúdo que deseja utilizar. O java-restify
já fornece objetos capazes de lidar com os formatos application/json, application/xml, text/plain, text/html, application/x-www-form-urlencoded, multipart/form-data e application/octet-stream.
Também é possível implementar um controle fino dos converters
utilizados, selecionando apenas os que fizerem sentido para o seu caso de uso.
Eventualmente também pode ser necessário desligar o registro automático dos converters
disponíveis no classpath
.
Caso você registre algum converter
customizado, as configurações padrão do java-restify
serão sobrescritas e apenas os converters
registrados manualmente serão utilizados.
Formatos suportados
O java-restify
fornece implementações para alguns tipos de conteúdo:
Last updated
Was this helpful?