如何在JAVA中将JSON和File传递给REST API?

时间:2012-12-19 13:20:15

标签: java rest wcf-rest

我的主要问题是如何传递JSON以及File以将请求发送到REST API? Spring框架中有什么需要作为客户端工作并通过使用JSON和File传递帖子来等待响应?

选项:

  1. 我是否需要在ClientResource中使用FileRepresentation?但是我如何传递文件以及JSON?
  2. 使用RestTemplate传递JSON和File?它如何用于发布JSON和File?
  3. 还有其他选择吗?

3 个答案:

答案 0 :(得分:1)

听起来像是你想要暴露的可怕资源。我的建议是将它们分成两个不同的请求。也许JSON具有该文件的URI然后被请求...

答案 1 :(得分:1)

从REST(ish)的角度来看,听起来您传递的资源是multipart/mixed内容类型。一个子类型是application / json,一个是文件的类型。其中一个或两个都可以是base64编码。

您可能需要编写特定的提供程序来序列化/反序列化此数据。根据特定的REST框架,this article可能有所帮助。

另一种方法是创建一个封装json和文件数据的单个类。然后,编写特定于该类的提供程序。您可以选择为其创建新的内容类型,例如“application / x-combo-file-json”。

答案 2 :(得分:1)

你基本上有三个选择:

  1. Base64对文件进行编码,但代价是增加数据大小 大约33%。
  2. 首先在multipart / form-data POST中发送文件, 并将ID返回给客户端。然后客户端发送元数据 使用ID,服务器重新关联文件和元数据。
  3. 首先发送元数据,然后将ID返回给客户端。客户端 然后发送带有ID的文件,服务器重新关联 文件和元数据。