This is my first time working with HATEOAS everyone and I have come to a screeching halt. Here is my problem, I have an app that converts text from a text area to a pdf and a pdf to images. My issue is that I send both back as a ResponseEntity<byte[]>. Here is a sample success response from the text to pdf endpoint:
// Get PDF from conversion result
byte[] res;
res = this.textToPDFService.convertTextToPdf(input);
// Create pdf name
DateFormat dateFormatter = new SimpleDateFormat("dd-MM-yyyy:hh:mm:ss");
String currentDateTime = dateFormatter.format(new Date());
// Prepare Headers to open PDF on the client
String headerKey = "Content-Disposition";
String headerValue = "inline; filename=pdf_" + currentDateTime + ".pdf";
// Send a successful response
return ResponseEntity.ok()
.header(headerKey, headerValue)
.contentType(MediaType.APPLICATION_PDF)
.body(res);
Questions:
Any additional good sources on how I can add these files to a JSON response are very welcome.
Server-side: Send any of the above as a byte[] in a response entity, which Springboot automatically transformed using Base64 encoding to a String. This String is part of a JSON response sent by the server.
Client-side: I receive the response. Then I create a LinkedHashMap<String, String> in which I store the media String using the key I set on the server. Then, decode it the value using the built-in Base 64 decoder (no packages/external repositories).