Маршрутизация с 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',
Другие вопросы по тегам