วิธีใช้ API Routes ใน Laravel 5.3


94

ใน 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 นี้ได้อย่างไร


มันใช้งานได้: localhost / myproject / public / api / test
Muhammad Shahzad

คำตอบ:


177

คุณเรียกมันโดย

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');
    });
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.