2016-08-08 30 views
2

Ich versuche, eine Entwicklungsumgebung unter Windows mit Xampp 5.6.23 einzurichten.Restler 404 Fehler Routes.php: 431 mit Xampp

Ich habe eine API Ich möchte 3.0.0 mit Restler einzurichten, so dass ich auf http://localhost/api/cars/search?term=red durchsuchen können die search($term) Funktion in der C:\xampp\htdocs\api\cars.php Datei aufzurufen:

<?php 
class cars{ 
    public function search($term) { 
    // do search... 
    return $result; 
    } 
} 

Ich habe auch ein C:\xampp\htdocs\api\index.php eingerichtet mit :

<?php 
require_once 'vendor/autoload.php'; 
require_once 'vendor/luracast/restler/vendor/restler.php'; 
use Luracast\Restler\Restler; 

Defaults::$crossOriginResourceSharing = true; 

$r = new Luracast\Restler\Restler(); 
$r->setCompatibilityMode('2'); 
$r->setSupportedFormats('JsonFormat', 'XmlFormat', 'JsFormat'); 
Luracast\Restler\Format\JsonFormat::$unEscapedUnicode = false; 

$r->addAPIClass('cars'); 

$r->addAPIClass('Luracast\\Restler\\Resources'); 

$r->handle(); //serve the response 

und C:\xampp\htdocs\api\.htdocs:

DirectoryIndex index.php 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond %{ENV:REDIRECT_STATUS} ^$ 
RewriteRule ^$ index.php [QSA,L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php [QSA,L] 
</IfModule> 
<IfModule mod_php5.c> 
php_flag display_errors On 
</IfModule> 

Aber wenn ich an jede URL gehen (/ oder /cars) bekomme ich einen 404-Fehler:

<response> 
<error> 
    <code>404</code> 
    <message>Not Found</message> 
</error> 
<debug> 
    <source>Routes.php:431 at route stage</source> 
    <stages> 
    <success>get</success> 
    <failure>route</failure> 
    <failure>negotiate</failure> 
    <failure>message</failure> 
    </stages> 
</debug> 
</response> 

ich mehrere Antworten von SO aber keine haben in meinem Fall gearbeitet versucht haben. Ich habe LoadModule rewrite_module modules/mod_rewrite.so unkommentiert und setze AllowOverride All überall dort, wo ich es in httpd.conf finden konnte. Ich habe auch versucht, alles auf htdocs statt eines Unterordners zu verschieben, aber immer noch das gleiche Ergebnis.

Antwort

0

Da Sie in Ihrer Klasse cars keine Funktion index(), sondern nur eine search() Funktion haben, müssen Sie auf die URL /cars/search/term zugreifen.

Oder versuchen Sie etwas anderes zu erreichen?

+0

Leider bekomme ich immer noch eine 404 XML-Antwort. Mein Ziel ist es, nach 'http: // localhost/api/cars/search? Term = red' zu suchen, was die 'search()' Funktion mit dem '$ term' Parameter aufrufen wird, der' rot' entspricht und die Funktion dann rot findet Auto zeichnet auf und gibt ein XML-Ergebnis zurück. – Jake