另一个与 Zend Framework 2 的 RESTful Web 服务相关的问题。令人惊讶的是,当我调用http://ehcserver.localhost/rest时,我能够获取我的 JSON 字符串,因此实现了 getList() 方法。我认为我应该能够调用http://ehcserver.localhost/rest/id/2来调用 RestController 的 get(id)-method。我收到了 404 错误,而不是 JSON 脚本。我认为我的 config.php 中的路由一定会导致这个问题。可以在github上看到代码:https ://github.com/Jochen1980/EhcServer/blob/master/module/Application/config/module.config.php
这是相关的路由:
return array(
'router' => array(
'routes' => array(
'rest' => array(
'type' => 'Segment',
'options' => array(
'route' => '/rest',
'defaults' => array(
'__NAMESPACE__' => 'Application\Controller',
'controller' => 'Application\Controller\Rest',
),
),
'may_terminate' => true,
'child_routes' => array(
'default' => array(
'type' => 'Segment',
'options' => array(
'route' => '/:controller[/:id][/]',
'constraints' => array(
'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
),
'defaults' => array(
),
),
),
),
),
'home' => array(
...
更新: get(id) 现在可以工作,我将配置更改为 ...
'rest' => array(
'type' => 'Segment',
'options' => array(
'route' => '/rest[/:id]',
'constraints' => array(
'id' => '[0-9]+',
),
'defaults' => array(
'__NAMESPACE__' => 'Application\Controller',
'controller' => 'Application\Controller\Rest',
),
),
),
...