我正在使用zend framework2创建一个简单的restful api,并且我参考了Rob Allen关于该主题的笔记以及http://hounddog.github.com/blog/getting-started-with-rest-and的这个优秀教程-zend-framework-2/
下面是我的module_config.php。您会看到我配置了路由和 JSON 视图策略。我的理解是,当您以这种方式设置 JSON 策略时,它会容纳所有模块。问题是,当输入无效路由时,即使 Accept 标头正在请求 Application/json,404 响应也会以 html 形式发回。
我已经为此苦苦挣扎了 2 天,任何建议或帮助将不胜感激
对 api 的 curl 调用会生成预期的 404 错误。
curl -i -H "Accept: application/json" http://myapi-dev.local/xxx/1
模块配置.php
return array(
'controllers' => array(
'invokables' => array(
'Dips\Controller\Roles' => 'Dips\Controller\RolesController', //maps controller alias to a physical controller
),
),
'router' => array(
'routes' => array(
'dips' => array(
'type' => 'segment',
'options' => array(
'route' => '/dips/roles/:apikey/:uname/:appname',
'constraints' => array(
'apikey' => '[a-zA-Z0-9]+',
'uname' => '[a-zA-Z]+',
'appname' => '[a-zA-Z][a-zA-Z0-9_-]*',
),
'defaults' => array(
'controller' => 'Dips/Controller/Roles',
),
),
),
),
),
'view_manager' => array(
'strategies' => array(
'ViewJsonStrategy',
),
),
);