Hej
Mam taki kod, który generuje JSON z różnymi danymi i potem pozwala go pobrać przez API
Service:
public File getJsonFile() {
// utworzenie pewnego JSON'a
File jsonFile = new File("file.json");
try (FileWriter fileWriter = new FileWriter(jsonFile)) {
fileWriter.write(objectMapper.writeValueAsString(json)); // objectMapper z Jackson
} catch (IOException e) {
throw new RuntimeException(e);
}
return jsonFile;
}
Controller:
@GetMapping
ResponseEntity<Resource> getJsonFile() throws FileNotFoundException {
File file = service.getJsonFile();
String header = String.format("attachment; filename=%s", file.getName());
return ResponseEntity.ok()
.header(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, HttpHeaders.CONTENT_DISPOSITION)
.header(HttpHeaders.CONTENT_DISPOSITION, header)
.contentLength(file.length())
.contentType(MediaType.APPLICATION_JSON)
.body(new InputStreamResource(new FileInputStream(file)));
}
Czy taki kod jest wydajny? Jak zrobić, żeby nie tworzyło mi pliku przy pobieraniu jsona?