閱讀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. 速率限制如何限制API
- 3. Salesforce中的API調用限制
- 4. 環繞速率限制API調用
- 5. 安排API調用1秒限制
- 6. 如何在Magento API調用中添加限制選項
- 7. 如何多次限制函數調用
- 8. 如何限制調用方法
- 9. 調整圖像大小的API限制
- 10. SurveyMonkey - 限制api調查訪問
- 11. 調用google.maps.LatLng()是否會影響任何API限制?
- 12. 如何從PHP製作Win32 API調用?
- 13. Facebook API限制
- 14. Twitter API限制
- 15. Gmail API限制
- 16. Soundcloud API限制。
- 17. Yammer API限制
- 18. Youtube API限制
- 19. 如何收到API限制警告?
- 20. 如何限制呼叫到API休息
- 21. 如何解決instagram api標籤限制?
- 22. 如何限制IP訪問Facebook API
- 23. 如何解決salesforce API限制
- 24. 如何限制web api返回的列?
- 25. 如何使用microapps處理Shopify的API調用限制Node.js模塊
- 26. 如何排序/限制用於羣組的成員列表的API調用
- 27. 如何使用RxJs限制每個間隔的API調用次數?
- 28. Twitter API應用限制
- 29. Api鍵和引用限制
- 30. 如何在不觸及限制的情況下使用受限制的API?
有什麼建議?如果你需要時間限制,除了實際比較時間之外,我沒有看到任何其他方法。 – casablanca 2010-10-20 04:38:21