Come utilizzare le rotte API in Laravel 5.3


93

In Laravel 5.3 le rotte API sono state spostate nel file api.php. Ma come posso chiamare una rotta nel file api.php? Ho provato a creare un percorso come questo:

Route::get('/test',function(){
     return "ok"; 
});

Ho provato i seguenti URL ma entrambi hanno restituito l'eccezione NotFoundHttpException:

  • http://localhost:8080/test/public/test
  • http://localhost:8080/test/public/api/test

Come posso chiamare questa rotta API?


Risposte:


173

Lo chiami da

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

Se guardi dentro app/Providers/RouteServiceProvider.php, vedrai che di default imposta il apiprefisso per le rotte API, che puoi cambiare ovviamente se lo desideri.

protected function mapApiRoutes()
{
    Route::group([
        'middleware' => 'api',
        'namespace' => $this->namespace,
        'prefix' => 'api',
    ], function ($router) {
        require base_path('routes/api.php');
    });
}

Qualche idea su come chiamarlo in laravel 5.4? Il percorso API predefinito: Route::middleware('auth:api')->get('/user', function (Request $request) { return $request->user(); }); ho provato localhost / app / api / user ma non ha funzionato
utdev

@utdev Usi esattamente lo stesso. Rimuovi il appsegmento dall'URI. Dovrebbe sembrare sulla falsariga dilocalhost/api/user
peterm


1

rotte / api.php

Route::get('/test', function () {
    return response('Test API', 200)
                  ->header('Content-Type', 'application/json');
});

La mappatura è definita in App \ Providers \ RouteServiceProvider del provider di servizi

protected function mapApiRoutes(){
    Route::group([
        'middleware' => ['api', 'auth:api'],
        'namespace' => $this->namespace,
        'prefix' => 'api',
    ], function ($router) {
        require base_path('routes/api.php');
    });
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.