如何在Laravel 5.3中使用API Routes。
如何在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
http://localhost:8080/test/public/api/test
\n
\n
\n我该如何调用这个API路由呢?
在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。
如何在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