阅读http://blog.programmableweb.com/2007/04/02/12-ways-to-limit-an-api/我想知道如何完成基于时间的限制(即每秒1个呼叫)。那么,如果需要认证,方法是比较PHP的时间函数跟踪秒(例如,if ($previous_call_time == $current_call_time) { ... }
)?还有其他建议吗?如何限制API调用?
1
A
回答
4
使用简单的缓存:
if(filemtime("cache.txt") < (int)$_SERVER["REQUEST_TIME"] - 3600) { // 3600 is one hour in seconds
$data = file_get_contents("http://remote.api/url/goes/here");
file_put_contents("cache.txt", $data);
} else
$data = file_get_contents("cache.txt");
像这样将节省API的价值,并让,只要你想,同时还限制多久,你实际上是从进料拉日你得到的信息。
希望这会有所帮助!
+0
这实际上有很大的帮助。谢谢! – madhushankarox 2018-02-05 12:25:55
1
更一般的限制条件是“每个'期间的通话次数'”。例如 - 每小时,就像twitter一样。
通过向每个请求的mysql添加记录,您可以跟踪当前执行的请求的数量。
这种方式更高性能的解决方案是使用memcached并递增“key”(user_id + current_hour)。
-1
需要考虑的事情:您可以使用外部服务来执行此操作,而不是自己构建它。例如。我的公司WebServius(http://www.webservius.com)目前支持可配置的每个API和每个API关键节制,而且我们很可能会添加更多的功能,例如“自适应节流”(当API响应变慢时自动节制使用)。
相关问题
- 1. Java - 限制SOAP API调用
- 2. 的eBay API调用限制
- 3. 速率限制如何限制API
- 4. 如何避免iPhone中特定的LinkedIn API调用的限制限制?
- 5. 如何限制访问api
- 6. Tumblr API调用或请求限制
- 7. 安排API调用1秒限制
- 8. 环绕速率限制API调用
- 9. 限制图形API调用的数量
- 10. 调用HTTP API的网络限制?
- 11. Analytics API调用请求限制
- 12. Salesforce中的API调用限制
- 13. 调用RESTFul API - HTTP POST限制
- 14. 如何评价我的Google Drive API调用限制?
- 15. 如何在Magento API调用中添加限制选项
- 16. 如何管理请求限制的API调用
- 17. 如何通过调用API URL来限制访问?
- 18. 如何设置API使用限制
- 19. 如何多次限制函数调用
- 20. 如何限制调用方法
- 21. 限制API调用,Microsoft认知服务必应新闻API
- 22. 调整图像大小的API限制
- 23. SurveyMonkey - 限制api调查访问
- 24. 调用google.maps.LatLng()是否会影响任何API限制?
- 25. 如何从PHP制作Win32 API调用?
- 26. 使用WebAudio API如何调制信号?
- 27. Gmail API限制
- 28. Facebook API限制
- 29. Yammer API限制
- 30. Twitter API限制
有什么建议?如果你需要时间限制,除了实际比较时间之外,我没有看到任何其他方法。 – casablanca 2010-10-20 04:38:21