Як користуватися маршрутами API у Laravel 5.3


93

У Laravel 5.3 маршрути API були переміщені у файл api.php. Але як я можу викликати маршрут у файлі api.php? Я намагався створити такий маршрут:

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

Я спробував такі URL-адреси, але обидва повернули виняток NotFoundHttpException:

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

Як я можу зателефонувати за цим маршрутом API?


Відповіді:


173

Ви називаєте це

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

Якщо заглянути app/Providers/RouteServiceProvider.php то побачите, що за замовчуванням він встановлює apiпрефікс для маршрутів API, який ви можете, звичайно, змінити.

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

Будь-яка ідея, як це назвати в laravel 5.4? Маршрут api за замовчуванням: Route::middleware('auth:api')->get('/user', function (Request $request) { return $request->user(); }); Я спробував localhost / app / api / user, але не працював
utdev

@utdev Ви використовуєте точно те саме. Видаліть appсегмент з вашого URI. Це повинно виглядати у відповідності доlocalhost/api/user
peterm


1

маршрути / api.php

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

Картографування визначено у службі постачальника послуг 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');
    });
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.