Agrupando rotas no Laravel

Com um prefixo de agrupamento conseguimos deixar mais rápido e dinâmico nossas declarações.

Simplificando o desenvolvimento de APIs PHP com Swagger

Hoje você confere mais uma dica simples e rápida mas que vai deixar seu desenvolvimento mais rápido. Com o agrupamento de rotas, economizamos esforços e garantimos que a nossa aplicação esteja seguindo uma recomendação de desenvolvimento.

Para esse exemplo, estamos utilizando Laravel na sua versão 8.

O arquivo que vamos utilizar para o agrupamento está no namespace routes/web.php.

Vamos ver um exemplo de uso tradicional do código abaixo. Perceba que a cada nova rota a gente precisa especificar o caminho photo/, além disso ser repetitivo, caso precisamos alterar o nome, vamos ter que alterar em todos os pontos que ele foi definido.

Route::get('photo/', [PhotoController::class, 'index']);
Route::get('photo/insert', [PhotoController::class, 'create']);
Route::get('photo/show/{id}', [PhotoController::class, 'show']);

Agora vamos ver um exemplo com agrupamento.

Route::prefix('photo')->group(function () {
    Route::get('/', [PhotoController::class, 'index'])->name('photo.index');
    Route::get('/insert', [PhotoController::class, 'create'])->name('photo.create');
    Route::get('/show/{id}', [PhotoController::class, 'show'])->name('photo.show');
});

Perceba que utilizamos o método estático prefix('') da classe Route, em seguida, chamamos o método group() passando uma função contendo todas as nossas rotas. Agora temos um agrupamento de rotas, dispensando a necessidade de ficar declarando o caminho photo/ o tempo todo.