Как динамически управлять префиксом Owners/{ownerUUID} в маршрутах API Laravel?

В моем приложении Laravel у меня есть много повторяющихся маршрутов с префиксом владельцев/{ownerUUID}. Например, у меня есть такой маршрут:

GET owners/{ownerUUID}/hotels/{hotelUUID}

Это вызов API, и мне интересно, есть ли способ передать OwnerUUID другим способом вместо того, чтобы всегда включать его в маршрут GET. Я бы хотел избежать дублирования этой части маршрута во многих похожих определениях маршрута. Как лучше всего справиться с этой ситуацией в Laravel? OwnerUUID будет сеансом, в котором пользователь проходит аутентификацию на стороне клиента.

«Мне бы хотелось избежать дублирования этой части маршрута во многих похожих определениях маршрутов» — вы смотрели на группы маршрутов? laravel.com/docs/11.x/routing#route-groups

kris gjika 18.06.2024 12:35

Нет, на самом деле это есть в файле api.php и уже организовано таким образом. Я имел в виду способ передачи значения напрямую от клиента на сервер, избегая его повторения каждый раз. Если бы это было одно приложение, я мог бы использовать хранилище сеансов для этого значения, но с API я не могу этого сделать.

Andrea Verrecchia 18.06.2024 12:43

@AndreaVerrecchia, способ определения GET route является стандартом REST APInaming-convenstions. В этом нет ничего плохого. И это лучшая практика, которой вы поделились в своем посте.

Subha 18.06.2024 13:24

Возможно, вам нужна группировка маршрутов, особенно префикс группы. laravel.com/docs/11.x/routing#route-group-prefixes

LoaiAkram 21.06.2024 14:34
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
4
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

то, как вы используете маршруты, совершенно нормально.

если вы хотите удалить 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...

Другие вопросы по теме