2010-11-06 123 views
0

我正在爲使用CodeIgniter編寫的我的Web應用程序開發API。這是我第一次編寫一個API。PHP Web應用程序的REST API

對API施加API限制的最佳方式是什麼?

感謝您的時間

+0

什麼樣的限制? – 2010-11-06 09:34:22

+1

限制,我的意思是每小時對特定用戶的請求數量。 – 2010-11-08 04:40:05

回答

2

登錄用戶的憑據(如果他有向他們提供),或者他的IP地址,請求(可選),並在數據庫中的時間戳。

現在,對於每個請求,刪除時間戳超過一小時前的記錄,檢查該用戶的請求數仍在表中,如果超過了限制,請拒絕該請求。

簡單的解決方案,請記住,雖然可能會有更多的高性能解決方案。

非常直截了當。如果這不能解決您的問題,請提供更多詳細信息。例如,我不明白這是如何與codeigniter相關的。

+0

感謝您的建議。我將CodeIgniter添加到標籤,因爲我在CodeIgniter框架之上構建它。 – 2010-11-08 20:01:39

1

您可以做的一件事就是考慮使用外部服務來強制實施API限制並提供一般的API管理功能。例如,我的公司WebServius(http://www.webservius.com)提供了一個位於API前面的圖層,可以提供每個用戶的限制(例如每小時API請求的請求),API範圍的限制(例如每個用戶的總請求數小時),自適應節流(API響應時間增加時節流限制減少)等,其他功能即將推出(例如基於IP地址的節流)。它還提供了用戶註冊/發佈API密鑰的頁面以及許多其他有用的功能。

當然,你也可能想看看我們的競爭對手,如Mashery或Apigee。

+0

謝謝尤金。我確實嘗試過Webservius。用戶界面看起來很複雜,這讓我離開了。會再試一次。 – 2010-11-08 20:04:30

+0

請隨時直接與我聯繫(eugene at webservius dot com),我會確保你將獲得儘可能多的幫助,使所有的工作都能正常工作。我對我們如何改進UI的反饋也很感興趣。 – 2010-11-08 20:56:26