Verwendung von API-Routen in Laravel 5.3


93

In Laravel 5.3 wurden API-Routen in die Datei api.php verschoben. Aber wie kann ich eine Route in der Datei api.php aufrufen? Ich habe versucht, eine Route wie diese zu erstellen:

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

Ich habe die folgenden URLs ausprobiert, aber beide haben die NotFoundHttpException-Ausnahme zurückgegeben:

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

Wie kann ich diese API-Route aufrufen?


Antworten:


173

Du nennst es bei

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

Wenn Sie nachsehen , werden Sie feststellen, app/Providers/RouteServiceProvider.phpdass standardmäßig das apiPräfix für API-Routen festgelegt wird, das Sie natürlich ändern können, wenn Sie möchten.

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

Irgendeine Idee, wie man das in Laravel 5.4 nennt? Die Standard-API-Route: Route::middleware('auth:api')->get('/user', function (Request $request) { return $request->user(); }); Ich habe localhost / app / api / user ausprobiert, aber es hat nicht funktioniert
utdev

@utdev Du benutzt genau das gleiche. Entfernen Sie das appSegment aus Ihrer URI. Es sollte nach dem Vorbild vonlocalhost/api/user
peterm


1

Routen / api.php

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

Die Zuordnung wird unter Dienstanbieter App \ Providers \ RouteServiceProvider definiert

protected function mapApiRoutes(){
    Route::group([
        'middleware' => ['api', 'auth:api'],
        'namespace' => $this->namespace,
        'prefix' => 'api',
    ], function ($router) {
        require base_path('routes/api.php');
    });
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.