我刚成为SHOUTcast的合伙人,收到了我的DevID。
我在这里几乎读到了所有的东西:API接口
在这里:协议
我有一个棘手的问题:我是否应该缓存他们的API调用的结果?
如果决定缓存,我将违背SHOUTcast无线电目录API中所要求的内容:
不要缓存XML超过一天,因为站ID的可以和将改变。
如果我没有缓存任何东西,我将违反SHOUTcast API许可协议:
请不要敲服务器。我们请求合理的使用,并建议您使用本地缓存。
此外,让我们假设我决定缓存结果。由于这些结果是100%基于用户的查询,缓存这些结果是不是有点愚蠢,因为我的应用程序的用户可能每次?都会输入不同的查询。
为了解决我的问题,我想下载整个SHOUTcast数据库,每周一次,然后上传到我自己的服务器上。之后,我的应用程序会将所有的查询发送到我的服务器,而不会打扰SHOUTcast的服务器。
然而,这种方法的问题在于,我无法同时下载整个SHOUTcast数据库,就像我们可以使用IceCast的Di.xiph.org/yp.xml那样。
接下来我该怎么办?我该怎么做?
我害怕伤害SHOUTcast API许可协议,并使我的DevId被撤销:
我们保留对滥用系统的DevID的访问权。
这里有没有人创建过连接到SHOUTcast目录的应用程序?如果是的话,你过去没有被禁止使用哪一种方法?
发布于 2016-03-29 16:43:46
为了完整起见,我将用我想出的解决方案来回答我自己的问题。
经过大量的研究,我决定创建一个30分钟的缓存,从中检索最后的结果。如果用户更改搜索筛选器,或者缓存过期,所有缓存结果都将被清除,将向SHOUTcast的服务器发出新的请求,并创建新的缓存。
代码可以在这里找到:
https://stackoverflow.com/questions/34333143
复制相似问题