minstudio

라우팅: 동적 파라미터와 그룹화

수백 개의 페이지가 있는 웹사이트에서 모든 주소를 하나하나 등록하는 건 불가능합니다. 동적 파라미터({변수명})를 사용하면 하나의 라우트로 여러 주소를 똑똑하게 처리할 수 있습니다. 또한, 비슷한 라우트들은 그룹(Group)으로 묶어 코드를 깔끔하게 정리합니다.

🌳 라우트 트리 구조 (그룹화)

/api (Group)
  ├─ /users (전체 회원 목록)
  └─ /users/{id} (특정 회원 정보)
      ├─ /api/users/1 ➡️ 1번 회원
      └─ /api/users/99 ➡️ 99번 회원

{id} 자리에 들어온 숫자는 코드 내의 $args['id']를 통해 쉽게 꺼내 쓸 수 있습니다!

use Slim\Routing\RouteCollectorProxy;

// '/api' 로 시작하는 모든 주소를 한 곳으로 묶기 (그룹화)
$app->group('/api', function (RouteCollectorProxy $group) {

    // 1. 전체 회원 목록 (GET /api/users)
    $group->get('/users', function ($request, $response) {
        $response->getBody()->write("전체 회원 목록입니다.");
        return $response;
    });

    // 2. 특정 회원 정보 (GET /api/users/123)
    // {id} 부분이 동적으로 바뀝니다.
    $group->get('/users/{id}', function ($request, $response, $args) {
        // 주소에 입력된 id 값을 꺼내옵니다.
        $userId = $args['id'];
        $response->getBody()->write("{$userId}번 회원의 정보입니다.");
        return $response;
    });

});
라우팅: 동적 파라미터와 그룹화 | Minstudio