REST API,提供表示的变体。导出具有依赖项的文件

时间:2012-10-18 13:10:02

标签: api rest content-negotiation

我有一个关于提供资源的不同表示的最佳实践的问题。我的用例比简单地在不同内容类型(Say xml或json)中提供对象的表示要复杂一些。

背景:此API适用于内容管理系统。 API的一个重要方面是用户可以请求文档的zip文件及其所有依赖项(链接图像和其他文档)。

例如,可以访问/rest/all-documents/{doc-id}处的文档,该文档将返回文档的XML表示形式。

在设计一种方式让他们获取文档的拉链及其所有依赖项时,我想出了几个选项:

  1. 使用内容协商并将Accept标头设置为特定于供应商的内容,即:vnd.company.compiled-doc + zip
  2. 使用/rest/all-documents/{doc-id}/export等子集合(导出是一个动词,所以我不确定这是否已经很好地标准化了)
  3. 以不同的URI提供服务:/rest/compiled-documents/{doc-id}
  4. 由于这个问题可能会一次又一次地出现,我很难确定设计这部分API的最佳方法。到目前为止,我倾向于选项3,

    谢谢,

    凯西

1 个答案:

答案 0 :(得分:1)

我建议采用以下方法:/ rest / all-documents / {doc-id} .zip

知道你最终选择了什么解决方案会很有趣。

文斯。