Как настроить маршруты для API отдыха в приложении ZF1 с помощью пользовательских и дополнительных действий?

Мы устанавливаем API отдыха в веб-приложении ZF1, и у нас возникают проблемы при настройке маршрутов.

Идея состоит в том, чтобы иметь глобальную конфигурацию в application.ini, которая включает в себя «классические» маршруты Rest и дополнительные действия.

Это означает, что мы хотим, чтобы базовые операции 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() в начальной загрузке.

У кого-нибудь есть идея? После того времени, которое мы потратили на исследования, похоже, что ZF1 не может позволить нам настроить надлежащий Rest API …

3

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]