Ez Publish无法使REST API正常工作

时间:2013-05-29 11:18:54

标签: rest ezpublish

我是Ez Publish的新手,我想让默认的Rest API作为第一步工作,然后开发我自己的Rest API扩展用于移动通信目的,但我在第一步被阻止。

当我尝试从“www.mydomain.com/api/ezp/content/node/2/list”获取结果时,我得到“{”error_message“:”不是发现 “}”

配置已完成:

设置/重写/ site.ini.append.php

[ExtensionSettings]
ActiveExtensions[]
ActiveExtensions[]=ezprestapiprovider
...

延伸/ ezprestapiprovider /设置/ rest.ini.append.php

<?php /* #?ini charset="utf-8"?

[ApiProvider]
ProviderClass[ezp]=ezpRestApiProvider

[Authentication]
RequireAuthentication=disabled

*/ ?>

的.htaccess

DirectoryIndex index.php

RewriteEngine On
RewriteRule api index_rest.php [L]
RewriteRule ^index_rest\.php - [L]
...

我为我的英语道歉。

编辑1:Ez发布版本4.5

Edit2:当我更改“www.mydomain.com/api/ezp/content/node/2/list”时,这似乎是RewirteRule的问题“www.mydomain.com/index_rest.php/api/ezp/content/node/2/list”它有效,我该如何解决?

EDIT3: 我尝试了下面的所有重写,除了最后一个之外仍然没有工作。

# RewriteRule ^/api/ /index_rest.php [L] 
# RewriteRule ^api/(.*) /index_rest.php/$1 [R=302,NC] 
# RewriteRule ^/api/(.*) /index_rest.php/api/$1 [NC,L] 
RewriteRule api index_rest.php [L] 

但是当我尝试添加新的扩展时,它似乎会产生混乱...... 我添加了一个新扩展,当我尝试访问它时,我在日志文件中出错:

意外错误,消息为:找不到API提供商“mobile”。在第37行的mydomaine.com \ kernel \ private \ rest \ classes \ rest_provider.php

2 个答案:

答案 0 :(得分:2)

尝试用eZ

指定的那个替换这些重写符
RewriteRule ^/api/ /index_rest\.php [L]

此处列出的版本为4.5:http://doc.ez.no/eZ-Publish/Technical-manual/4.5/Installation/Virtual-host-setup

答案 1 :(得分:1)

我只是重新生成自动加载,它现在正在运行。我使用cmd行来做(使用管理模块重新生成自动加载对我来说不起作用)。