#api #zend-framework #module #zend-framework-modules
#API #zend-framework #модуль #zend-framework-modules
Вопрос:
Можете ли вы использовать модули при создании Restful API в Zend Framework? Если да, то можно ли объяснить, как это сделать? с префиксом примера. (или ссылку на вспомогательные документы)
У меня есть модули, называемые:
Продукт
- может иметь один контроллер
Сущность
может иметь более одного контроллера, например.
-
/клиент
-
/поставщик
В каждом у меня есть контроллер индекса с методами:
Получить
Публикация
Поместите
Удалить
Пример:
Products/index/?id=1amp;name=test (добавлю)
Однако я хочу удалить слово index, чтобы вместо него было это: Products/?id=1amp;name =test (добавит)
Я могу сделать это с помощью Zend_Controller_Router_Route, но он не передает запрос, я посмотрел GetMethod, но вы не можете этого сделать на этапе начальной загрузки.
Есть ли какой-либо способ использовать модульное приложение Zend Framework в качестве restful API?
Комментарии:
1. Без какой-либо информации о вашей начальной загрузке / маршрутизации это трудно исправить. Вам также следует взглянуть на REST-router: framework.zend.com/manual/en /…
Ответ №1:
Да, вы можете.
Вы должны использовать Zend_Rest_Route. Он направляет запрос методом к нужному действию. Есть одна ошибка, которая не позволяет настроить маршрут rest в файле конфигурации, поэтому вы должны добавить маршрут в bootstrap.
<?php
protected function _initRestRoute()
{
$front = Zend_Controller_Front::getInstance();
$router = $front->getRouter();
$restRoute = new Zend_Rest_Route(
$front,
array(), //Defaults
array('api') //Restful modules
);
$router->addRoute('rest', $restRoute);
}
По умолчанию, если вы указываете URL, подобный этому, 123 привязывается к переменной $id
products/123
Вы также можете указать URL-адрес следующим образом, когда переменные являются bind ‘123’ -> $id и ‘test’ -> $name
products/id/123/name/test
Контроллеры должны расширять класс Zend_Rest_Controller