2012-07-13 46 views
0

使用Zend Framework,如果我想從我的應用程序,並通過REST接收相同的數據,將這種由同一個動作位指示即從應用程序檢索相同的數據和REST

articlesController extends Zend_Controller_Action 
{ 
    listAction() 
    { 
     // Service layer get data 

     // REST request return results in JSON 

     // Normal request return view 
    } 
} 

處理或這應該是在單獨的控制器?

articlesController extends Zend_Controller_Action 
{ 
    listAction() 
    { 
     // Service layer get data 
     // Returns view 
    } 
} 

articlesController extends Zend_Rest_Controller 
{ 
    getAction() 
    { 
     // Service layer get data 
     // Returns view 
    } 
} 

希望是有道理的

謝謝你們

回答

0

在默認的MVC Zend框架設置控制器和動作名稱被鏈接到的路徑。路由器檢查路徑,然後分派給適當的控制器和操作。

考慮到這一點,你如何設置它並不重要。 這隻取決於你喜歡如何構建你的路徑

如果您在路徑中使用附加參數具有某些信息,則可以在一個操作中組合所有內容。您的第一個參數可能是REST請求的「api」,或者如果您的附加參數位於URI路徑中,則您有常規請求,但如果參數在GET數組中,則您有API REST請求。這一切都適用於你的第一個例子,我想你已經這麼想了。

對我來說,擁有API路徑會更合適。有了這個,你將擁有一個API控制器和相應的操作。在你的第二個例子,這將意味着你的API控制器看起來更像這個

apiController extends Zend_Rest_Controller { 
    articlesAction() { 
     // your REST data here 
    } 
} 

// URI path: /api/articles 

請注意,你不能有兩個控制器具有相同的名稱。

相關問題