2011-12-22 62 views
1

我正在使用PHP REST API。我想要求一個用戶密鑰來訪問API。我不知道如何做到這一點,我只是發出一個密鑰,並讓他們發送一個POSTGET每個API請求?如果可以的話,請儘可能以最簡單的方式幫助我解釋,我知道這是很多人想要做的事情,它讓很多人不只是我自己。PHP RESTful API接受認證

此外,我希望能夠限制使用,我想每個命中存儲在MySQL數據庫或甚至在內存中的東西。我剛剛在Github API請求 X-RateLimi-Limit 5000X-RateLimi-Remaining 4996的標題中看到了這一點,並且每次命中時數字減少1,這是否是某種內置限制器?

+0

[傳遞API鍵REST API]的可能重複(http://stackoverflow.com/questions/8567512/passing-api-keys-to-rest-api) – hakre 2011-12-22 13:53:42

回答

1

只是要求客戶與你的網站上註冊, 在您的客戶表中創建一個記錄,發出他們的要求,無論是在GET獨特的,非容易猜到的ID 然後每個API的訪問要求被列入ID或在標題中開啓POST。

驗證它與每個請求,返回錯誤代碼,如果id不存在或無效。

爲了限制您的速率,您需要有一個單獨的表來存儲每個客戶端的請求數,然後使用X-RateLimit計數器生成這些響應標頭。

這並不難,真的。

我寫的確實是我的項目,歡迎您來看看源代碼的API,它是在API的文件夾,這裏 https://github.com/snytkine/LampCMS/tree/master/lib/Lampcms/Api/

和切入點API調用是這樣 https://github.com/snytkine/LampCMS/blob/master/www/api/api.php

URL,用於將新的應用程序是: http://support.lampcms.com/index.php?a=editapp

+0

謝謝,你的git中心代碼對於事物的流動是非常有用的 – CodeDevelopr 2011-12-22 16:47:07

+0

只需一張紙條,通過您的代碼庫查看LampCMS,這可能是我在10年中見過的最好的書面PHP項目,令人印象深刻! – CodeDevelopr 2011-12-22 17:18:35

+0

@CodeDevelopr謝謝。有一天,當我有時間的時候,我真的想用Java Spring 3重寫API。他們讓設計RESTful Apis變得如此簡單,並且它可能比使用APC的最新PHP效率高几倍。我也會因此而開放源碼 – 2011-12-22 17:29:50