Jak korzystać z tras API w Laravel 5.3

94

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?

gw0
źródło

Odpowiedzi:

174

Ty to nazywasz

http://localhost:8080/api/test
                      ^^^

Jeśli zajrzysz do app/Providers/RouteServiceProvider.phpśrodka, zobaczysz, że domyślnie ustawia apiprefiks 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');
    });
}
peterm
źródło
Masz jakiś pomysł, jak to nazwać w Laravel 5.4? Domyślna trasa api: Route::middleware('auth:api')->get('/user', function (Request $request) { return $request->user(); }); próbowałem localhost / app / api / user, ale nie działało
utdev
@utdev Używasz dokładnie tego samego. Usuń appsegment ze swojego identyfikatora URI. Powinien wyglądać podobnie jaklocalhost/api/user
peterm
1

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');
    });
}
Chandrakant Ganji
źródło