【发布时间】:2016-03-30 00:43:46
【问题描述】:
我刚刚成为 SHOUTcast 合作伙伴并收到了我的 DevID。
我在这里阅读了几乎所有内容: SHOUTcast_Radio_Directory_API
这里:SHOUTcast_API_License_Agreement
我有一个棘手的问题:我应该缓存他们 API 调用的结果吗?
如果决定缓存,我将违背 SHOUTcast Radio Directory API 中的要求:
不要将 XML 缓存超过 1 天,因为站 ID 可以并且将会改变。
如果我没有缓存任何内容,我将违反 SHOUTcast API 许可协议:
请不要锤击服务器。我们要求合理使用并建议您使用本地缓存。
此外,假设我决定缓存结果。由于这些结果 100% 基于用户的查询,缓存这些结果会不会有点傻,因为我的应用的用户可能每次都会输入不同的查询????
为了尝试解决我的问题,我想到了每天/每周一次下载整个 SHOUTcast 数据库,然后将其上传到我自己的服务器。之后,我的应用程序会将所有查询发送到我的服务器,并且根本不会打扰 SHOUTcast 的服务器。
不过,这种方法的问题在于,我无法像使用 IceCast 的 dir.xiph.org/yp.xml 那样一次性下载整个 SHOUTcast 数据库。
接下来我该怎么办????我应该如何进行?
我害怕损害 SHOUTcast API 许可协议并让我的 DevId 被撤销:
我们保留撤销滥用系统的 DevID 访问权限的权利。
这里有没有人创建过连接到 SHOUTcast 目录的应用程序?如果是这样,您使用了哪种方法没有被禁止?
【问题讨论】:
-
我想说这只是使用常识的问题。任何可能每次都返回不同数据的请求(即任何形式的搜索)对于缓存其结果没有多大意义。反之亦然:可以/应该缓存不太可能随每个请求更改的数据(更多或“静态”数据)。这可能值得付出努力,即使它的有效期仅为 24 小时,因为它可以让您的应用感觉更灵敏(并且可能在(半)离线模式下工作)。
-
嘿,卡罗,我在这里提出了一个类似的问题:stackoverflow.com/questions/49395722/…。可以看看吗?