如何在Laravel 5.3中使用API Routes。

13 浏览
0 Comments

如何在Laravel 5.3中使用API Routes。

在Laravel 5.3中,API路由被移动到api.php文件中。但是我该如何调用api.php文件中的路由呢?我尝试创建了以下路由:\n

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

\n我尝试了以下URL,但都返回了NotFoundHttpException异常:\n

    \n

  • http://localhost:8080/test/public/test
  • \n

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

\n我该如何调用这个API路由呢?

0
0 Comments

在Laravel 5.3中,我们可以使用API Routes来创建API路由。然而,有时候会遇到API Routes无法正常工作的问题。下面我们来看一下问题的原因以及解决方法。

问题的原因是在service provider App\Providers\RouteServiceProvider中定义了映射,但是没有正确配置API Routes。解决方法是在映射中正确配置API Routes。

具体的代码如下:

routes/api.php

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

在service provider App\Providers\RouteServiceProvider中的mapApiRoutes方法中,我们需要正确配置API Routes。

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

通过以上配置,我们可以使用API Routes来创建API路由,并且可以在api/test路径下访问到一个返回'Test API'的API。

0
0 Comments

如何在Laravel 5.3中使用API路由

在Laravel 5.3中,要使用API路由,你可以通过以下方式进行调用:

http://localhost:8080/api/test

如果你查看app/Providers/RouteServiceProvider.php文件,你会发现默认情况下它为API路由设置了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路由呢?默认的API路由代码如下:

Route::middleware('auth:api')->get('/user', function (Request $request) { return $request->user(); });

你可以直接使用相同的代码,只需要从URI中去掉app段。你的URI应该类似于:

localhost/api/user

0