3

ZF1 Web アプリで Rest API を設定していますが、ルートの構成に問題があります。

アイデアは、「従来の」Rest ルートとオプションのアクションを含む application.ini にグローバル構成を設定することです。

これは、次のような基本的な CRUD 操作が必要であることを意味します。

GET    /user/1
POST   /user
PUT    /user/1
DELETE /user/1

しかし、次のようなカスタム アクションも使用できます。

GET    /user/findBySomething

今のところ、アプリのルートは application.ini で次のように定義されています。

resources.router.routes.app.type = "Zend_Controller_Router_Route_Hostname"
resources.router.routes.app.route = ":module.myApp.com"
resources.router.routes.app.defaults.module = "app"
resources.router.routes.app.chains.default.type = "Zend_Controller_Router_Route"
resources.router.routes.app.chains.default.route = ":lang/:@controller/:@action/*"
resources.router.routes.app.chains.default.defaults.lang = "fr"
resources.router.routes.app.chains.default.defaults.controller = "index"
resources.router.routes.app.chains.default.defaults.action = "index"

これまでのところ、API に別の構成が必要です。

resources.router.routes.api.type = "Zend_Controller_Router_Route_Hostname"
resources.router.routes.api.route = ":module.myApp.com"
resources.router.routes.api.defaults.module = "api"
resources.router.routes.api.chains.default.type = "Zend_Controller_Router_Route"
resources.router.routes.api.chains.default.route = ":lang/:@controller/*"
resources.router.routes.api.chains.default.defaults.lang = "fr"
resources.router.routes.api.chains.default.defaults.controller = "index"
resources.router.routes.api.chains.default.defaults.action = "index"

そして、抽象 API コントローラーでリクエストをキャッチし、リクエストの HTTP メソッドに応じて呼び出すメソッドを定義します。

これは基本的な CRUD 操作ではうまく機能しますが、カスタム アクションにアクセスしたい場合、論理的にはまだ機能しません。これを行う方法がわかりません。

Zend_Controller_Router_Route_Regexを使用してルートを定義するなど、いくつかのオプションを試しましたが失敗しました。addRoute()または、Bootstrap でカスタム ルートを手動で追加します。

誰にもアイデアはありますか?調査に時間を費やした後、これまでのところ、ZF1 では適切な Rest API をセットアップできないようです...

4

0 に答える 0