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