Aufruf habe ich zur Zeit eine JSON-API Arbeits Herstellung URLs wie https://example.com/api/user/id/0eine REST-API aus dem gleichen Server
Suche nach der besten Methode der Herstellung intern, um die API ohne die HTTPS-Bearbeitungszeit von PHP aufrufen.
Dies funktioniert:
$url = "https://example.com/api/user/id/0";
file_get_contents($url);
Dies gilt nicht:
$url = "/api/user/id/0";
file_get_contents($url);
oder dies:
$url = __DIR__."/api/user/id/0";
file_get_contents($url);
Ich habe eine .htaccess-Datei wie folgt in der API zur Zeit:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)$ index.php?request=$1 [QSA,NC,L]
</IfModule>
Die Informationen aus dem Apache error log ist wenig hilfreich:
file_get_contents(/api/user/id/0): failed to open stream: No such file or directory in /var.....
Irgendwelche Vorschläge geschätzt würde. Ich erhalte derzeit pro Anfrage eine Wartezeit von 5 Sekunden mit der vollständigen URL-Methode, obwohl die API beim Zugriff direkt in Sekundenbruchteilen angezeigt wird. Dies ist alles native PHP, keine Frameworks.
'file_get_contents' wird hauptsächlich verwendet, um ** Dateiinhalte ** zu erhalten, es wird nicht magisch verstehen, dass'/api/... 'ein HTTP-Aufruf sein soll. Zumindest müssen Sie 'http: // localhost/api/...' verwenden, um dies explizit zu machen. – deceze
Leider ist dies nicht möglich, da der localhost standardmäßig auf eine andere Subdomain umleitet, sodass nur der FQDN aufgerufen wird. Netter Vorschlag obwohl – Adsy2010
Nun, das liegt an Ihnen und Ihrem Web-Server, um herauszufinden. :) – deceze