在RESTful响应中返回多一个实体?

时间:2015-06-09 14:51:32

标签: rest service entity entities

我正在开发一个RESTful websevices项目,我的问题很简单, 有没有办法在同一个响应中返回'File'和'JSON'实体?

例如:假设我有这种方法:

    @GET
        @Path("downloadFile")
        @Consumes(MediaType.TEXT_PLAIN)
        public Response downloadLogStream( ..... ) {
        .....
        Response.ok(resultFile);
        }

但我需要在文件旁边返回另一个实体而不添加其他标题。

可能吗?

1 个答案:

答案 0 :(得分:0)

您只能发送回复,但这可能是一个复杂的对象。将结果/ json和状态包装在响应中。

return Response.status(200).entity(result).build();

更多信息

@GET
@Path("downloadFile")
@Consumes(MediaType.TEXT_PLAIN)
public Response downloadLogStream( ..... ) {
         // Assuming result is json string
         String result = " JSON is "+jsonObj;
        return Response.status(200).entity(result).build();

    }
}

文件下载

private static final String FILE_PATH = "pathTo:\\filename. Zip"; 
@GET @Path("/get")         
@Produces(MediaType.APPLICATION_OCTET_STREAM) 
public Response getFile() 
  { 
   File file = new File(FILE_PATH);   
   ResponseBuilder response =    Response.ok((Object) file);   
   response.header("Content-Disposition", "attachment; filename=newfile.zip");
   return response.build(); }