При вызове Spring REST в браузере отображается JSON. Можно ли также разрешить пользователю загружать файл?

1

У меня есть базовый вызов REST

/**
 * REST CALL
 * @return
 */
@RequestMapping(method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public List<Template> getTemplatesJson(){
    logger.info("GET all computers- /computers/ -- content type = application/json");
    return computerService.retrieveAllComputers();
}

Когда я перехожу к URL-адресу, я вижу JSON в браузере. Мы также хотели бы, чтобы наши пользователи могли загружать JSON в качестве файла (который впоследствии используется для импорта).

Есть ли простой способ сделать это с этой конечной точкой или мне нужно создать совершенно новую конечную точку?

  • 0
    Просто нажмите Ctrl-S?
Теги:
spring
rest

1 ответ

1
Лучший ответ

Вы можете использовать заголовок Content-Disposition чтобы указать браузеру, что контент должен быть загружен как вложение, а не отображаться.

  1. Переполнение стека на контент-размещение
  2. Википедия раздела о Content-Disposition

Вот как выглядит ваш код:

@RequestMapping(method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public List<Template> getTemplatesJson(HttpServletResponse response) {
    logger.info("GET all computers- /computers/ -- content type = application/json");
    response.setHeader("Content-Disposition", "attachment; filename=templates.json");
    return computerService.retrieveAllComputers();
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню