W Laravel 5.3 trasy API zostały przeniesione do pliku api.php. Ale jak mogę wywołać trasę w pliku api.php? Próbowałem stworzyć taką trasę:
Route::get('/test',function(){
return "ok";
});
Wypróbowałem następujące adresy URL, ale oba zwróciły wyjątek NotFoundHttpException:
http://localhost:8080/test/public/test
http://localhost:8080/test/public/api/test
Jak mogę wywołać tę trasę API?
api
laravel
laravel-5.3
gw0
źródło
źródło
Odpowiedzi:
Ty to nazywasz
http://localhost:8080/api/test ^^^
Jeśli zajrzysz do
app/Providers/RouteServiceProvider.php
środka, zobaczysz, że domyślnie ustawiaapi
prefiks dla tras API, które możesz oczywiście zmienić, jeśli chcesz.protected function mapApiRoutes() { Route::group([ 'middleware' => 'api', 'namespace' => $this->namespace, 'prefix' => 'api', ], function ($router) { require base_path('routes/api.php'); }); }
źródło
Route::middleware('auth:api')->get('/user', function (Request $request) { return $request->user(); });
próbowałem localhost / app / api / user, ale nie działałoapp
segment ze swojego identyfikatora URI. Powinien wyglądać podobnie jaklocalhost/api/user
Jeśli chcesz to dostosować lub dodać własne oddzielne pliki tras, poszukaj inspiracji w App \ Providers \ RouteServiceProvider
https://mattstauffer.co/blog/routing-changes-in-laravel-5-3
źródło
route / api.php
Route::get('/test', function () { return response('Test API', 200) ->header('Content-Type', 'application/json'); });
Mapowanie jest zdefiniowane w dostawcy usług App \ Providers \ RouteServiceProvider
protected function mapApiRoutes(){ Route::group([ 'middleware' => ['api', 'auth:api'], 'namespace' => $this->namespace, 'prefix' => 'api', ], function ($router) { require base_path('routes/api.php'); }); }
źródło