自分のローカルサーバーにRestlerをインストールして、自分のプロジェクトのためにいくつかのAPIをテストして作成しました。Restlerは常に404を返します:Not found
APIリクエストはhttp://localhost/myproject/api/
で処理されます。
RewriteEngine on
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^api(.*)$ /myproject/api/api.php [QSA,L]
そして、これがapi.php
は、次のようになります。
{
"error": {
"code": 404,
"message": "Not Found"
},
"debug": {
"source": "Routes.php:383 at route stage",
"stages": {
"success": [
"get"
],
"failure": [
"route",
"negotiate",
"message"
]
}
}
}
また、これは私の.htaccess
です:
問題は、私は次のエラーを取得する要求をしようと毎回ということです。
namespace myproject;
use Luracast\Restler\Restler;
require_once($_SERVER["DOCUMENT_ROOT"]."/myproject/resources/engine/settings.php");
require_once(Settings\Path\Absolute::$library."/restler/vendor/restler.php");
$restler = new Restler();
$restler->addAPIClass("myproject\\User");
$restler->handle();
私はいくつかのミスコンフィギュレーションがあると思います私は本当に何が間違っているのか理解できません。
(私もStackOverflowの上でいくつかのソリューションを試みたが、彼らは私のために動作するようには思えない)
編集:
私は次のパスhttp://localhost/myproject/resources/engine/library/restler/public/examples
を使用した例を到達しようと、彼らが作業していますので、それはhttp://localhost/myproject/api
で動作するように見えないので、それはRestler自体の設定と関係していると思います。
さらに、Restlerエクスプローラをhttp://localhost/myproject/api/explorer
にコピーしようとしました。エラー:404 : Not Found ../resources.json
が表示されます。これはおそらく、私のプロジェクトのルートフォルダにRestlerをインストールしなかったためです。 Restlerを別のサブフォルダにインストールするにはどうすればいいですか?
編集2:私がしようとした場合
$r->addAPIClass('User');
:
class User {
function data() {
return "HELLO!";
}
}
と例のindex.php
内の行を追加: 私は単なる一例に001フォルダを以下のクラスを移動.../_001_helloworld/index.php/say/hello
でその例を実行するには問題なく動作しますが、私が試してみると_001_helloworld/index.php/user/data
はありません。私はすべての希望を失っていると私は本当に私は何かが欠けていますが、本当にここでHELP!
でいただきました!間違っている願っすべてのルート情報を一覧表示キャッシュフォルダ内のroutes.phpを作成します。私は最初の2つのステップに従って、それが問題を解決しました。ありがとう、私は本当にあなたの助けに感謝:) – siannone
私は同様の問題を抱えています。昨日はすべて動作していましたが、Restlerから404メッセージを受信し始めました。私のWebサーバー構成は変更されていません。 index.phpを経由して、index.phpを実行しても、そうでなくても、どちらの場合も同じroutes.phpファイルが作成されます。 –
私のコメントは無視してください。私は間違ったURLを使用していた.. Doh –