Cara menggunakan Rute API di Laravel 5.3

93

Di Laravel 5.3, rute API dipindahkan ke file api.php. Tapi bagaimana saya bisa memanggil rute dalam file api.php? Saya mencoba membuat rute seperti ini:

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

Saya mencoba URL berikut tetapi keduanya mengembalikan pengecualian NotFoundHttpException:

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

Bagaimana saya bisa memanggil rute API ini?

gw0
sumber
Ini berfungsi: localhost / myproject / public / api / test
Muhammad Shahzad

Jawaban:

173

Anda menyebutnya dengan

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

Jika Anda melihat ke dalam, app/Providers/RouteServiceProvider.phpAnda akan melihat bahwa secara default ini menetapkan apiawalan untuk rute API, yang tentu saja dapat Anda ubah jika Anda mau.

protected function mapApiRoutes()
{
    Route::group([
        'middleware' => 'api',
        'namespace' => $this->namespace,
        'prefix' => 'api',
    ], function ($router) {
        require base_path('routes/api.php');
    });
}
peterm
sumber
Ada ide bagaimana menyebutnya di laravel 5.4? Rute api default: Route::middleware('auth:api')->get('/user', function (Request $request) { return $request->user(); }); Saya mencoba localhost / app / api / pengguna tetapi tidak berhasil
utdev
@utdev Anda menggunakan persis sama. Hapus appsegmen dari URI Anda. Ini harus terlihat di sepanjang garislocalhost/api/user
peterm
1

rute / api.php

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

Pemetaan ditentukan di penyedia layanan 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
sumber