[英]Laravel API URL Parameters and Routing
我的api.php文件中包含以下代码:
Route::group(['prefix' => 'v1', 'middleware' => 'auth:api'], function() {
// Return user information
Route::get('/user', function(Request $request) {
return $request->user();
});
// Return user runs
Route::get('/runs', function(Request $request) {
$user = $request->user('api');
return $user->runs();
});
Route::get('/runs/{id}', function(Request $request, $id) {
$user = $request->user('api');
return $user->run($id);
});
// Return user profiles
Route::get('/profiles', function(Request $request) {
$user = $request->user('api');
return $user->profiles();
});
});
API调用
我正在使用PostMan测试API:
GET - http://srp.local/api/v1/runs/1
身份验证使用承载令牌完成,并且工作正常,但是/ runs / {id}调用存在问题,我只想通过该调用返回与该ID相关联的运行(基本上是经过过滤的/ runs调用),但我正在努力获取ID的参数。
当前,上面的代码有效,但是当尝试执行上述调用时,它所做的只是返回/ user的输出,并且不返回具有给定ID的运行。
我也不确定是否使用上述方法以最佳方式进行路由,所以将不胜感激-谢谢。
可以通过使用路由模型绑定来解析模型,请查看以下示例:
Route::get('/runs/{run}', function(Request $request, Run $run) {
$user = $request->user('api');
return $user->run($run);
});
更多信息: https : //laravel.com/docs/5.8/routing#implicit-binding
与在路由中使用回调相比,使用控制器优先。 控制器帮助分离代码并允许缓存。 签出以下示例: https : //laravel.com/docs/5.8/controllers#defining-controllers
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.