0

API の REST 実装の実装を検討していたところ、Restler に出会いました。Restler 2.0 をインストールし、Apache と php > 5.3 を使用しています。私のクラスは以下です:

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"
  }
}

関数 gettest() が見つからない理由を特定するために、Restler をより徹底的にデバッグする方法が何か不足していますか?

前もって感謝します。

R

4

1 に答える 1

1

現在の構成に従って、 http://www.myhost.com/REST_DIR/sample/testからの結果を期待できます

代わりに URL をhttp://www.myhost.com/REST_DIR/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'); //not needed JSON is the default
$r->addAPIClass('Sample',''); // note the empty string
$r->handle();
于 2013-01-07T08:16:13.863 に答える