相关视频功能的最佳API设计

时间:2012-11-13 14:21:04

标签: ruby-on-rails web-services api rest

我必须设计一个RESTful API来获取与另一个相关的视频。用户可以使用某些属性过滤列表,例如日期,视频类型s.o.可能缺少属性的值,在这种情况下,我们将查找与之相关的内容的视频的给定属性的所有值。

我正在使用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基于其发生过滤,值是单数,从固定列表中选择。

1 个答案:

答案 0 :(得分: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。此子资源与相关视频列表中的任何内容都不对应。

<强>解决方案

使用第二种选择。