Laravel-API-Fehler 404
Ich bin einfache API mit Laravel 5.4 und ich habe ein problem. Ich erstellte routing und einige Daten für die tests, aber wenn ich testen, ob das routing richtig funktioniert mit Postboten, indem Sie localhost:8888/{projectname}/api/v1/meeting
es zeigt mir error 404 page not found
. Was mache ich falsch?
routes/api.php
<?php
Route::group(['prefix' => 'v1'], function() {
Route::resource('meeting', 'MeetingController', [
'except' => ['edit', 'create']
]);
Route::resource('meeting/registration', 'RegistrationController', [
'only' => ['store', 'destroy']
]);
Route::post('user', [
'uses' => 'AuthController@store'
]);
Route::post('user/signin', [
'uses' => 'AuthController@signin'
]);
});
MeetingController
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
class MeetingController extends Controller
{
public function __construct()
{
//$this->middleware('name');
}
public function index()
{
return "It works!";
}
public function store(Request $request)
{
return "It works!";
}
public function show($id)
{
return "It works!";
}
public function update(Request $request, $id)
{
return "It works!";
}
public function destroy($id)
{
return "It works!";
}
}
RegistrationController
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
class RegistrationController extends Controller
{
public function store(Request $request)
{
return "It works!";
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
return "It works!";
}
}
AuthController
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
class AuthController extends Controller
{
public function store(Request $request)
{
return "It works!";
}
public function signin(Request $request)
{
return "It works!";
}
}
Ausgabe des Befehls php artisan route:list
:
+--------+-----------+--------------------------------------------+----------------------+-----------------------------------------------------+------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+-----------+--------------------------------------------+----------------------+-----------------------------------------------------+------------+
| | GET|HEAD | / | | Closure | web |
| | POST | api/v1/meeting | meeting.store | App\Http\Controllers\MeetingController@store | api |
| | GET|HEAD | api/v1/meeting | meeting.index | App\Http\Controllers\MeetingController@index | api |
| | POST | api/v1/meeting/registration | registration.store | App\Http\Controllers\RegistrationController@store | api |
| | DELETE | api/v1/meeting/registration/{registration} | registration.destroy | App\Http\Controllers\RegistrationController@destroy | api |
| | DELETE | api/v1/meeting/{meeting} | meeting.destroy | App\Http\Controllers\MeetingController@destroy | api |
| | PUT|PATCH | api/v1/meeting/{meeting} | meeting.update | App\Http\Controllers\MeetingController@update | api |
| | GET|HEAD | api/v1/meeting/{meeting} | meeting.show | App\Http\Controllers\MeetingController@show | api |
| | POST | api/v1/user | | App\Http\Controllers\AuthController@store | api |
| | POST | api/v1/user/signin | | App\Http\Controllers\AuthController@signin | api |
+--------+-----------+--------------------------------------------+----------------------+-----------------------------------------------------+------------+
- Die
api.php
Routen sind bereits vorangestellt/api
. Sie brauchen nicht, um dieses wieder sich selbst. Mit Ihrem aktuellen set-up, Ihre route istlocalhost:8888/{projectname}/api/api/v1/meeting
- Ich habe versucht, auch löschen api mit Routen und zeigt es Den gleichen Fehler
- Sie brauchen nicht
/{projectname}
in Ihrer Anfrage-url. - Versucht
localhost:8888/api/v1/meeting
? - Ja, und es zeigt die gleichen Fehler 404
- Poste bitte die Ergebnisse von
php artisan route:list
- hier ist das Ergebnis der php artisan route:Liste
POST | api/v1/meeting | meeting.store | App\Http\Controllers\MeetingController@store | api GET|HEAD | api/v1/meeting | meeting.index | App\Http\Controllers\MeetingController@index | api POST | api/v1/meeting/registration | registration.store | App\Http\Controllers\RegistrationController@store | api DELETE | api/v1/meeting/registration/{registration} | registration.destroy | App\Http\Controllers\RegistrationController@destroy | api
- Was ist mit der homepage und den anderen Seiten?
- Chen, Wenn ich gehen, um
localhost:8888/{project-folder}/{project-name}/public
es zeigt normale laravel willkommen-Seite, damit es richtig funktioniert. Problem ist nur mit api. Nichts von Lösungen, die war unten nicht für mich arbeiten. - Also, was ist
localhost:8888/{project-folder}/{project-name}/public/api/v1/meeting
? - Sie sind ein Genie es stars arbeiten
- Ich bin verwirrt, warum Sie benötigen
project-folder
undproject-name
Sie in url? - denn in meinem htdocs Ordner habe ich Projekt-Ordner und erstellt habe ich einen anderen Ordner mit dem Befehl composer erstellen laravel/laravel Projekt-name
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Laravel 5.4, Ihre
routes/api.php
sollte wie folgt Aussehen:Für weitere Informationen, besuchen Sie Ihre docs hier.
als in der version 5.4 die api ist bereits aufgenommen in die end-Punkte, so dass keine Notwendigkeit zum hinzufügen von api " wieder in der url.
Bitte ändern Sie aus:
Zu
php artisan serve
oder apache/nginx/...?Nur versuchen
vergessen Sie nicht
public
.