2010-06-29 61 views
7

我正在开发一个基于Zend框架的应用程序,我发现自己正在编写一个API模块的框架。我在网上阅读了一下,然后开始编写基于Zend_Rest_Controller的骨架。事实证明,使用API​​需要密钥登录。REST风格的Zend框架API

当我的一位同事开始在我们的一个应用程序的适当API中实现框架时,问题就开始了。他告诉我他认为如果我们在API控制器中只扩展了一个通常的Zend_Controller_Action,并且在indexAction a Zend_Rest_Server中处理该对象,那会更好。

我对此有点困惑。从我个人的角度来看,我希望有一个“大于平均水平”的控制器,其中包含每个动作中的4个动作(获取,发布,放置,删除)和一些逻辑,而不是一个由Zend_Rest_Server

我的问题是,我不能从体系结构的角度来看出2种解决方案中哪种更好;当然,随着时间的推移最容易维护。

回答

5

Zend_Rest_Server通常被认为不赞成使用Zend_Rest_Controller/Zend_Rest_route。例如,见post by MWO'P

仅此一项就会让我坚信Zend_Rest_Controller/Zend_Rest_Route的方向。

+0

我明白了。这是越来越有趣...... Zend_Rest_Controller的小问题是你会发现自己有一个相当肥大的控制器,第二个解决方案是为通过API公开的对象创建一个服务对象。这将在rest_controller-> object_service-> object-> object_model-> eventual_object_custom_abstraction中进行转换,我认为这在团队中很难维护,而未事先研究如何在其余控制器中获得最终对象表示。 – 2010-06-29 17:48:03

+0

您的实现细节是真的取决于你的域名,但一般来说,这听起来像你在正确的轨道上。我不确定每层中的具体内容,但是当我做这种事情时,我的控制器依赖于一个服务层来操作域对象,并通过某种类型的持久层来处理存储/读取。 – timdev 2010-06-29 18:13:16