2010-06-29 101 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