json - 将文件和相关数据以 JSON 形式发布到 RESTful WebService

标签 json rest grails file-upload

在我正在开发 RESTful API 的应用程序中,我们希望客户端以 JSON 格式发送数据。此应用程序的一部分要求客户端上传文件(通常是图像)以及有关图像的信息。

我很难跟踪这在单个请求中是如何发生的。是否可以将文件数据 Base64 转换为 JSON 字符串?我需要向服务器执行 2 个帖子吗?我不应该为此使用 JSON 吗?

附带说明一下,我们在后端使用 Grails,并且这些服务由本地移动客户端(iPhone、Android 等)访问,如果有任何影响的话。

最佳答案

我在这里问了一个类似的问题:

How do I upload a file with metadata using a REST web service?

你基本上有三个选择:

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

关于json - 将文件和相关数据以 JSON 形式发布到 RESTful WebService,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4083702/

相关文章:

grails - 使用 Assets 管道和 Bootstrap 在Grails 3.1.11中进行类强制转换生成WAR文件

python - 从多个rest api流端点读取 - python

rest - 应该对 json-api 响应中的链接进行编码吗?

hibernate - 域类是否可以配置为在保存时插入新记录而不是更新?

json - 将复杂的 JSON 转换为 Golang 中的 map

javascript - Protractor:测试特定的ajax调用

grails - grails 在哪里存储自生成的 SSL 证书?

javascript - Javascript 的工作 Json 库?

java - 使用通用 'header' 增强 Spring Rest API

python - jsonschema 去掉未知字段