2011-10-10 79 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