繁体   English   中英

Laravel API URL参数和路由

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM