Ho installato Restler sul mio server locale per testare e creare alcune API per il mio progetto.Restler restituisce sempre 404: Non trovato
Le richieste API vengono gestite tramite http://localhost/myproject/api/
.
Il problema è che ogni volta che provo a fare una richiesta ottengo il seguente errore:
{
"error": {
"code": 404,
"message": "Not Found"
},
"debug": {
"source": "Routes.php:383 at route stage",
"stages": {
"success": [
"get"
],
"failure": [
"route",
"negotiate",
"message"
]
}
}
}
Anche questo è il mio .htaccess
:
RewriteEngine on
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^api(.*)$ /myproject/api/api.php [QSA,L]
E questo è ciò che il api.php
appare come:
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();
Immagino ci sia un po 'di confusione intorno, ma non riesco davvero a capire cosa c'è che non va.
(ho anche provato alcune soluzioni su StackOverflow, ma non sembra funzionare per me)
Edit:
ho cercato di raggiungere l'esempio utilizzando il percorso http://localhost/myproject/resources/engine/library/restler/public/examples
segue e che stanno lavorando , quindi penso che abbia a che fare con la configurazione di Restler stessa perché non sembra funzionare in http://localhost/myproject/api
.
Inoltre ho anche provato a copiare il Restler Explorer in http://localhost/myproject/api/explorer
e continuo a ricevere l'errore: 404 : Not Found ../resources.json
probabilmente perché non ho installato Restler nella cartella principale del mio progetto. Come dovrei installare Restler in una sottocartella diversa?
Edit 2: Ho appena spostato la seguente classe nella esempio 001 cartella:
class User {
function data() {
return "HELLO!";
}
}
e ha aggiunto questa linea all'interno del index.php
dell'esempio:
$r->addAPIClass('User');
Se provo per eseguire l'esempio a .../_001_helloworld/index.php/say/hello
funziona senza problemi ma se provo _001_helloworld/index.php/user/data
non lo è.
A questo punto ho perso ogni speranza e ho davvero bisogno di aiuto perche' davvero mi manca qualcosa, ma davvero non riesco a immaginare che cosa :(AIUTO!
Ho seguito i primi 2 passaggi e questo ha risolto il problema. Grazie, apprezzo molto il tuo aiuto :) – siannone
Sto avendo un problema simile. Funzionava tutto ieri, poi ho iniziato a ricevere il messaggio 404 da Restler. Nessuna configurazione del mio server web è stata modificata. Passando tramite index.php funziona, e andando in questo modo o senza index.php crea un file routes.php che è identico in entrambi i casi. –
Si prega di ignorare il mio commento; Stavo usando l'URL sbagliato .. Doh –