2012-11-03 91 views
4

我有興趣創建將提供API服務的應用程序。與Facebook類似,終端開發者將能夠註冊應用程序並接收個性化數據,以便通過第三方應用程序訪問提供的API。目前,我想提供一個PHP和JavaScript SDK,以允許開發人員通過安全方法(私鑰 - 公鑰)訪問API。創建REST API客戶端和服務器

我想我已經或多或少,掌握瞭如何處理這個整體的認識:

  • 內置在處理請求的REST服務器,
  • 內置於充當API服務器請求和REST服務器之間的隔離(驗證密鑰,權限等)
  • 內建的JavaScript庫,等同於Facebook的「all.js」,它異步進入頁面並可動態執行API調用,以及對API服務器進行驗證。

此外,我希望在內部使用API​​,即通過網站上的內部JavaScript文件發出PUT/GET/POST/etc請求。

我希望能夠使用CodeIgniter作爲啓動應用程序的基礎,因此如果對庫,技術和方法有任何建議,都會很棒。

具體來說,凡提述:關於應用程序,範圍的請求,基於角色的權限,會議,日誌,等等等等

  • SQL表結構
  • 如何創建/理想JavaScript庫的模板一樣做同Facebook的「all.js」
  • 圖書館可以做到公私密鑰授權

將是非常有益的。我似乎無法找到任何東西。

我知道下面的:

https://github.com/philsturgeon/codeigniter-restserver

但是它作爲開發API的一個很好的模板,是不是數據庫驗證。

任何幫助,非常感謝!

回答

0

,最好的辦法是創建普通web應用程序與你的框架 - 這就像用,無需實施任何額外的REST調用了最大的靈活性管理面板。然後使用必要的API調用將REST API作爲模塊(或插件)創建到應用程序。 如果您打算將REST API用於客戶端和內部目的,有一天您會發現自己被鎖定在您自己的API中。

0

通常不需要兩個級別的API,由於體系結構和安全性原因,您可以將代碼與外觀和核心邏輯分開。 至於客戶端,我建議基於一些自動生成API描述符自動生成客戶端,這將使您能夠通過點擊來更新客戶端庫。 在Kaltura中,我們爲使用來自服務器代碼的反射生成的所有API服務器生成XML描述符,請參閱示例:http://www.kaltura.com/api_v3/api_schema.php 從該描述符中,我們使用不同的編碼語言自動生成許多不同的客戶端庫,請參閱生成器:https://github.com/kaltura/clients-generator,原樣。

有關更多REST API服務器的指導原則,請參閱我的博客:http://restafar.com/create-new-rest-server/