0

我必须设计一个 RESTful API 来获取与另一个相关的视频。用户可以使用某些属性(例如日期、视频类型)过滤列表,因此该属性的值可能不存在,在这种情况下,我们正在查找相关内容的视频的给定属性的所有值都会被考虑。

我正在使用 Ruby on Rails。

替代方案是:

 1. video/ID/related/ATTRIBUTE?query="value of ATTRIBUTE"
 2. video/ID/related?attribute="value of ATTRIBUTE"
 3. video/ID/related/ATTRIBUTE/VALUE_OF_ATTRIBUTE

不得不提的是,正如我之前所说,该值可能不存在,只有一个 ATTRIBUTE 基于其进行过滤,该值是奇异的,从固定列表中选择的。

4

1 回答 1

1

第一步:获取所有相关视频

在第一步中,您GET 将所有与给定视频相关的视频。如果这个视频在

GET /video/{id}

那么相关视频可以在

GET /video/{id}/related

这将返回所有相关视频的完整列表。

第二步:过滤列表

如果要过滤此列表,请在第二种选择中使用查询参数。

GET /video/{id}/related?some_attribute=foo&some_other_attribute=bar

反对 1. 和 3 的理由。

您的备选方案 1. 和 3. 引入相关视频列表的新子资源ATTRIBUTE。此子资源与相关视频列表中的任何内容均不对应。

解决方案

使用第二种选择。

于 2012-11-13T14:29:22.517 回答