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?


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');
    });
}

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');
    });
}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.