2011-02-08 6 views
2

私はZend RestControllerを開発しています。私はxml形式でレスポンスを生成する必要があります。 ように私は、コンテキストスイッチを追加しましたので、私はURLで私のXML出力を見ることができる:カスタムZendRestController URL

ます。http:// localhostの/アプリ/公共/ API /キー/ 123456 /形式/ XML/

(ここで、 "APIは、" GET経由で渡さ= 123456キーコントローラ、)

ですが、何であるか、私が欲しいのは、URLのようなものでなければなりません:

ます。http:// localhostの/アプリ/公共/ API/V1/abc.xml/

(現時点では、「キー」パラメータを残して、後でカールポストで送信します)

これはどのようにして達成できますか?私はURLで何かを調整する必要がありますか? 「abc.xml」

+1

http:// localhost/app/public/api/key/123456/format/xml/'---このurlはRESTイデオロギーに従いません。より適切なのは 'http:// localhost/app/public/api/keys/123456.xml'です。 – zerkms

+0

私はURL:localhost/app/public/api/keys/123456.xmlを試してみました。キー "を使用して番号を取得します(クエリで使用するため)。しかし、今、私はxmlとして出力形式を取得できませんでした。 urlの最後に "/ format/xml"を指定しない限り、iamはxml出力を取得しません。何か方法はありますか? –

+0

答えを知っている人はいますか? –

答えて

2

に「形式/ XML」に変更を主とIAMの私は自分のアプリケーションのブートストラップにルートを設定している:

/* 
* ReWrite Rules and Routes 
*/ 
protected function _initRoutes() { 
    $router = Zend_Controller_Front::getInstance()->getRouter(); 
    // New Route 
    $router->addRoute('api', new Zend_Controller_Router_Route('/api/:key.xml', array('module'=>'index', 'controller' => 'api', 'action' => 'index', 'key'=>''))); 
} 

そしてとしてURLヘルパーを使用します。

<a href="<?= $this->url(array('key'=>123456), 'api') ?>">API Call</a> 
+0

ありがとうbluedaniel、私はすでに解決策を得ている.. –