我们只收集直接向服务器发送 API 请求的设备所需的最少信息,包括:1)设备的 IP 地址;2)user-agent;3)API 请求的端点和参数。这基本上就是 Nginx 访问日志中的一行记录,仅此而已。
例如,某位开发者使用我们的 API 构建了一款播客应用,许多终端用户通过该应用收听播客。通常,API 请求来自开发者的服务器,而不是播客应用本身;也就是说,开发者的服务器充当播客应用与 Listen API 之间的代理。因此,我们只会记录:1)发送 API 请求的开发者服务器 IP 地址;2)来自开发者服务器的 user-agent(例如 python-requests);3)API 请求的端点和参数。除此之外,我们不了解该播客应用的终端用户。
有。我们会为 API 端点设置合理的速率限制。如果正确使用 API,您甚至可能不会察觉这些限制的存在。
世界上任何严肃的 REST API 都必须设置速率限制,可以搜索 Google “api rate limit” 了解详情。没有速率限制的 API 很容易遭受 DDoS。例如,程序员可能会通过紧密循环(甚至无限循环)在短时间内发送大量 API 请求。根据我们自 2017 年运营 Listen API 的经验,这类情况比预想中更常见。程序员也是人,人都会犯错。我们不希望某个不当用户拖垮整个系统并影响其他 API 用户。
Listen API 的 FREE 方案速率限制较低,PRO 方案较高,ENTERPRISE 方案最高。不同端点的限制也不同,因为有些端点比其他端点需要更多计算资源。新 API 用户一开始会获得相对较低的速率限制,之后会逐步提高。