В моем приложении Laravel у меня есть много повторяющихся маршрутов с префиксом владельцев/{ownerUUID}. Например, у меня есть такой маршрут:
GET owners/{ownerUUID}/hotels/{hotelUUID}
Это вызов API, и мне интересно, есть ли способ передать OwnerUUID другим способом вместо того, чтобы всегда включать его в маршрут GET. Я бы хотел избежать дублирования этой части маршрута во многих похожих определениях маршрута. Как лучше всего справиться с этой ситуацией в Laravel? OwnerUUID будет сеансом, в котором пользователь проходит аутентификацию на стороне клиента.
Нет, на самом деле это есть в файле api.php и уже организовано таким образом. Я имел в виду способ передачи значения напрямую от клиента на сервер, избегая его повторения каждый раз. Если бы это было одно приложение, я мог бы использовать хранилище сеансов для этого значения, но с API я не могу этого сделать.
@AndreaVerrecchia, способ определения GET route является стандартом REST APInaming-convenstions. В этом нет ничего плохого. И это лучшая практика, которой вы поделились в своем посте.
Возможно, вам нужна группировка маршрутов, особенно префикс группы. laravel.com/docs/11.x/routing#route-group-prefixes






то, как вы используете маршруты, совершенно нормально.
если вы хотите удалить OwnerUUID и hotelUUID из URL-адреса, вам нужно использовать метод POST для отправки переменных в контроллер.
например :
маршрут:
Route::post('/owners-hotels', [Controller::class, 'foo'])->name('owners-hotels');
контроллер:
public function foo(Request $request){
$ownerUUID = $request->integer('ownerUUID');
$hotelUUID = $request->integer('hotelUUID');
// your code
}
тогда вы можете отправить запрос на публикацию на свой API...
«Мне бы хотелось избежать дублирования этой части маршрута во многих похожих определениях маршрутов» — вы смотрели на группы маршрутов? laravel.com/docs/11.x/routing#route-groups