Маршрутизация с Zend Framework 2 Restful Webservice
Я хочу реализовать веб-сервис RESTful с использованием Zend Framework 2, точнее 2.1.5. Я получил 404, если я захожу на http://ehcserver.localhost/rest, соответствующее сообщение "rest(преобразуется в недопустимый класс контроллера или псевдоним: rest)". Что пошло не так?
Вы можете увидеть мой исходный код в моем github-репозитории: https://github.com/Jochen1980/EhcServer/blob/master/module/Application/config/module.config.php
Маршрут определяется так:
return array(
'router' => array(
'routes' => array(
'rest' => array(
'type' => 'ZendMvcRouterHttpSegment',
'options' => array(
'route' => '/:controller[.:formatter][/:id]',
'constraints' => array(
'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
'formatter' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[a-zA-Z0-9_-]*'
),
),
),
'home' => array(
...
2 ответа
Решение
Ваш маршрут не определяет пространство имен, к которому принадлежит контроллер, вам нужно добавить __NAMESPACE__
проложить маршрут defaults
'rest' => array(
'type' => 'ZendMvcRouterHttpSegment',
'options' => array(
'route' => '/:controller[.:formatter][/:id]',
'defaults' => array(
// tell the router which namespace :controller belongs to
'__NAMESPACE__' => 'Application\Controller',
),
'constraints' => array(
'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
'formatter' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[a-zA-Z0-9_-]*'
),
),
),
Вы уверены, что тип действителен?
type' => 'ZendMvcRouterHttpSegment',
к этому
type' => 'Segment',