所以我正在开发一个应用程序,该应用程序具有一个功能,可以生成一个包含 100 位左右艺术家的列表,这些艺术家类似于使用 Echo Nest API 的用户音乐目录中的艺术家。然后,用户可以提供某个年份,并且根据类似的艺术家,应用程序将返回该年份发行的专辑列表。
唯一的问题是我不知道如何根据年份过滤专辑。Echo Nest API对专辑并没有太大作用。Discogs 和 Last.fm API 适用于专辑,Discogs API 具有有关专辑发布日期的数据,但无法按发布日期筛选初始查询。例如,如果我有艺术家Fleet Foxes,并且我想按2011年发行的专辑进行过滤,则无法搜索仅限于2011年发行日期的Fleet Foxes的专辑。
在这一点上,我真正能看到的唯一选择是遍历艺术家拥有的每张专辑,只添加那些符合我规格的专辑。但是,这显然对 API 和我的服务器来说都非常繁重,特别是考虑到 100 位类似艺术家列表中的许多艺术家都没有符合我标准的专辑,并且当您考虑单曲、混音等时,许多艺术家的专辑都在 100 张专辑的范围内。
有没有人看到更好的方法?
如果 API 真的没有任何方法按年份过滤,那么是的,当然你必须下拉所有版本并在事后过滤它们。
如果您认为这会给您的代码和/或其服务器带来负担,则应提交功能请求以添加过滤。
但是,您应该首先确保他们真的不提供这样的东西。大多数 REST API 将"获取"和"搜索"分开。例如,http://api.example.com/artists/12345/releases
可能没有任何方法可以过滤它,但可能存在http://api.example.com/search?type=releases&artist=12345&year=2011
。
在不详细查看所有 API 的情况下,快速检查 Discogs 的"运行搜索查询"文档会显示您可以在搜索中包含year
条件(尽管看起来您实际上无法按艺术家 ID 搜索,仅按艺术家姓名?