Spring REST调用在浏览器中显示JSON - 有没有办法让用户下载文件?

时间:2014-06-30 18:07:27

标签: java json spring rest

我有一个基本的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下载为文件(稍后用于导入)。

我是否可以通过此端点轻松实现这一目标,还是需要创建全新的端点?

1 个答案:

答案 0 :(得分:1)

您可以使用Content-Disposition标题向浏览器表明内容应作为附件下载而不是显示。

    关于Content-Disposition的
  1. Stack Overflow
  2. Wikipedia section关于Content-Disposition
  3. 以下是您的代码最终可能会显示的内容:

    @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();
    }