0

Zend Framework を使用して、アプリケーションからと 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
    }
}

それが理にかなっていることを願っています

みんなありがとう

4

1 に答える 1

0

デフォルトの MVC Zend Framework セットアップでは、コントローラーとアクションの名前がパスにリンクされています。ルーターはパスを調べてから、適切なコントローラーとアクションにディスパッチします。

それを念頭に置いて、これをどのように設定するかは問題ではありません。パスをどのように構成するかによってのみ異なります

追加のパラメーターを使用してパスに特定の情報がある場合は、1 つのアクション内ですべてを組み合わせることができます。最初のパラメータは REST リクエストの「api」である可能性があります。または、追加のパラメータが URI パスにある場合は通常のリクエストがありますが、パラメータが GET 配列にある場合は API REST リクエストがあります。それはすべてあなたの最初の例でうまくいくでしょう、そして私はあなたがすでにそのように考えていると思います.

ただし、私にとっては、API パスを使用する方が適切です。これで、API コントローラーと対応するアクションが作成されます。2番目の例では、これはAPIコントローラーがこのように見えることを意味します

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

// URI path: /api/articles

同じ名前のコントローラーを 2 つ持つことはできないことに注意してください。

于 2012-07-13T14:29:04.510 に答える