2013-01-07 3 views
0

저는 API에 대한 REST 구현을 구현하고 Restler를 발견했습니다. 저는 Restler 2.0을 설치했고 Apache와 PHP> 5.3을 사용하고 있습니다.Restler PHP는 모든 결과에 대해 404를 반환합니다.

Class Sample 
{ 
    function gettest() 
    { 
     return "This is a test"; 
    } 
} 

과의 index.php은 다음과 같습니다 : 내 클래스는 다음과 같습니다

set_include_path(get_include_path() . PATH_SEPARATOR . '/path/to/restler/'); 
require_once('path/to/Sample.class.php'); 
spl_autoload_register('spl_autoload'); 
$r = new Restler(); 
$r->setSupportedFormats('JsonFormat'); 
$r->addAPIClass('Sample'); 
$r->handle(); 

대신의 htaccess로를 사용하여, 나는

<Directory /path/to/REST_DIR> 
    AllowOverride All 
    Options +FollowSymLinks  
    DirectoryIndex index.php 

RewriteEngine On 
RewriteRule ^$ index.php [QSA,L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php [QSA,L] 
Order deny,allow 
    Allow from all 

</Directory> 

의 내부에 다음과 같은 포함했다 내 httpd.conf 파일 (편집 권한이있는 경우 더 빠르다고 가정하기 때문에). 나는 다음과 같은 경로 시도 할 때마다

는 :

http://www.myhost.com/REST_DIR/test/

를 내가 얻을 :

{ 
    "error": { 
    "code": 404, 
    "message": "Not Found" 
    } 
} 

은 내가 부족 뭔가 또는 왜 그것을 할 수있는 결정하기 위해 더 철저하게 Restler를 디버깅 할 수있는 방법이 있나요 gettest() 함수를 찾지 못했습니까?

미리 감사드립니다.

R은 당신이 URL 대신 http://www.myhost.com/REST_DIR/test 싶은 경우 http://www.myhost.com/REST_DIR/sample/test

결과 기대할 수있는 현재의 구성에 따라

답변

1

, 변화는

set_include_path(get_include_path() . PATH_SEPARATOR . '/path/to/restler/'); 
require_once('path/to/Sample.class.php'); 
spl_autoload_register('spl_autoload'); 
$r = new Restler(); 
$r->setSupportedFormats('JsonFormat'); //not needed JSON is the default 
$r->addAPIClass('Sample',''); // note the empty string 
$r->handle(); 
+0

감사 Luracast은 다음의 index.php로 - 내 되돌아 보면 어리석은 질문 인 것처럼 보이는 것에 대한 사과 - 긴 하루였습니다. 이 라이브러리에 대한 지원과 개발에 감사드립니다. 3.0을 기다릴 수 없습니다! – Ross

관련 문제