2011-10-10 111 views
2

剛開始摸索着ATK4。我希望將它用作後端API(如果可能的話)以及基於API將使用的相同數據創建小型CMS。 API將被瀏覽器插件訪問,所以ATK4不會進行渲染。在ATK4中創建REST API?

所以基本上我的問題是,ATK4是否支持創建自己的REST API,或者我基本上必須自己創建這個功能?我找到了API文檔,但他們似乎專注於使API方法服務於渲染「引擎」。

如果我自己做這個,在ATK4上實現它的最好方法是什麼? (就未來的兼容性而言)。

謝謝

回答

3

有一個簡單的方法來解決這個問題和一個通用的方法。

的直接方式是如此簡單:

class page_api_article_add extends Page { 
    function init(){ 
     parent::init(); 
     try { 
      $this->add('Model_Article')->set($_POST)->update(); 
      echo json_encode("OK"); 
      exit; 
     }catch (BaseException $e){ 
      echo json_encode($e->getMessage()); 
      exit; 
     } 
    } 
} 

更復雜的解決方案包括建設以下項目:

  • 你需要在ApiCLI的頂部自定義API。
  • 你需要一個單獨的頁面路由
  • 內部API你需要定義模型可通過API訪問和應該使用控制器
  • 控制器將執行的模型,如參數驗證和操作創建,更新,刪除,複製等
  • 支持密鑰的認證
  • 自定義異常

我已經實現了這一次,但我需要在我的客戶進行談判,以麥確定我可以將代碼捐贈給atk4插件。

目前,我建議你去「直截了當」的路線,直到泛型API發佈。

+0

謝謝,在這一點上,API將是非常輕量級和直接的,但在未來我期望它會變得更大更復雜..所以我期待更多地瞭解您的泛型API實現:) – Naatan

+0

嗨,關於通用ATK4 API的任何新聞? – Peter

+0

已實施:http://book.agiletoolkit.org/app/rest.html – romaninsh