在Rest Web服务请求中返回文件的正确方法是什么?

时间:2014-10-13 13:12:58

标签: web-services file rest

我需要在我的webservice中返回一个文件。我对什么是最好/正确/执行方式有点怀疑。 (我正在使用JSON)。

我可以:

  1. 只需通过HTTP
  2. 返回正确的mime类型等文件(正常下载)
  3. 编码de file(例如:Base64或其他)并将其发送到JSON答案
  4. 使用可以找到文件的网址返回json答案。

1 个答案:

答案 0 :(得分:2)

这三种都是有效的,取决于客户的需求,为什么不把它作为客户的选择呢?

我们说这是image/jpeg文件:

如果客户端发送了Accept: image/jpeg标头,则将文件作为正常下载返回。

如果客户端发送了Accept: image/jpeg标头和Accept-Encoding: base64,则将其作为正常下载,Base64编码返回。

如果客户端发送Accept: text/uri-list标头,则返回纯文本响应,其中包含存储在其他位置的图像的URI。

没有标准的mimetypes可以返回base64或json中的链接,但是你可以使用自己的一些标准并创建一个vnd mimetype,只要你记录它。