Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Envio de arquivos binarios com JAX-RS

Olá, me veio a seguinte questão sobre a implementação de serviços REST com JAX-RS: Vamos supor que eu queira implementar um serviço que me permita gerenciar arquivos de texto nos formatos PDF, Word, etc... Esse gerenciador teria o objetivo de enviar o arquivo (binário), com outras informações como autor, data de criação, tema etc... Em um sistema assim esse eu teria que enviar e baixar binários.

E, aqui vem minhas perguntas...

  • O JAX-RS permite receber arquivos binários do cliente?
  • O JAX-RS permite enviar arquivos binários para download no browser, por exemplo?
  • Se permite receber, como eu poderia implementar um serviço que recebesse um binário?
  • Se permite enviar, como eu poderia implementar um serviço que enviasse um binário para download do lado do cliente?

Obrigado.

3 respostas
solução!

Parece que não ta especificado a maneira de receber arquivos no JAX-RS e cada implementação tem a sua estratégia. Por exemplo, usando o Resteasy, vc pode seguir a documentação deles => https://docs.jboss.org/resteasy/docs/1.1.GA/userguide/html/Multipart.html

Aqui também vc encontra um exemplo mais completo de como fazer => https://www.mkyong.com/webservices/jax-rs/file-upload-example-in-resteasy/

Já o download é mais de boa, pq basta vc criar um response com o corpo que é um arquivo e definir os headers para o navegador. Ex:

ResponseBuilder response = Response.ok(file);
        response.header("Content-Disposition", "attachment; filename="+nomeDoArquivo+"");

Qual o tipo do objeto "file"? Ele pode ser uma array de bytes ou precisa ser de um tipo específico?

Obrigado.

Array de bytes, File