| 제목 | Restful API 경로문제 | ||
|---|---|---|---|
| 카테고리 | CI 4 관련 | ||
| 글쓴이 | Selma Kim | 작성시각 | 2020/05/11 00:58:09 | 
|  | |||
| 안녕하세요. 매일 눈팅만 하다 오늘은 아무래도 안풀리는 문제가 있어 문의드립니다. 
 Restful API를 구성중입니다. 1. Routes.php ...... 
$routes->get('v1/users/new',             'V1/Users::new');
$routes->post('v1/users',                'V1/Users::create');
$routes->get('v1/users',                 'V1/Users::login');
$routes->get('v1/users/(:segment)',      'V1/Users::show/$1');  //에러 부분
$routes->get('v1/users/(:segment)/edit', 'V1/Users::edit/$1');
$routes->put('v1/users/(:segment)',      'V1/Users::update/$1');
$routes->patch('v1/users/(:segment)',    'V1/Users::update/$1');
$routes->delete('v1/users/(:segment)',   'V1/Users::delete/$1');..... 2. V1/Users.php ..... 
public function show($userId = '')
{
    log_message('debug', 'CON::Users::Show');
    log_message('debug', $userId);
    header('Access-Control-Allow-Origin: *');
    return $this->respond($this->model->getUseridInfo($userId), 200);
}...... - 위의 Routes.php 파일의 '에러부분'을 호출하면 계속 페이지를 찾을수 없다고 합니다. - $routes->get('v1/users/(:segment)', 'V1/Users::show'); 이렇게 변경하면 에러는 안나는데 변수값을 전달 받을수가 없네요. - 다들 바쁘시겠지만 잠시 시간을 내어주셔서 답변 부탁드립니다. 
 그럼 수고하세요. | |||
| 다음글 | 페이지네이션 next_link 클릭시 다음 블럭으로 ... (3) | ||
| 이전글 | 혹시 PHPUnit test code 작성 하고 계신분... (1) | ||
| 
                                한대승(불의회상)
                                /
                                2020/05/11 09:09:12 /
                                추천
                                0
                             | 
| 
                                Selma Kim
                                /
                                2020/05/11 17:44:10 /
                                추천
                                0
                             
                                답변주신 내용을 변경하여 테스트해도 동일한 증상이 나타나네요 ㅠㅠ
                             | 
| 
                                Selma Kim
                                /
                                2020/05/11 18:26:48 /
                                추천
                                0
                             구글에서 하루종일 뒤졌더니 간신히 답을 얻었습니다. 다른분들도 도움이 되실까 하여 공유드립니다. 
$routes->get('v1/users/(:segment)',      'V1/Users::show/$1');  //에러 부분아래와 같이 변경하였더니 정상 구동하네요. 제가 원인까지는 밝히지 못했습니다. ^^ 
$routes->get('v1/users/(:segment)',      'V1\Users::show/$1');  //에러 부분 | 
| 
                                테러보이
                                /
                                2020/05/11 18:29:27 /
                                추천
                                0
                             저는 이런식으로 사용중입니다. 
 
 | 
| 
                                벤지
                                /
                                2020/05/11 19:12:07 /
                                추천
                                0
                             
 Group 을 활용하시면 Router 전체 구조가 편해집니다. 
 
 | 
| 
                                한대승(불의회상)
                                /
                                2020/05/12 09:25:51 /
                                추천
                                0
                             V1이 네임스페이스이니 구분자를 '/' 가 아닌 '\'로 쓰는게 맞습니다. 라우팅 순서로 인한 오류라 생각했는데 문법상 오류 였군요. | 
순서를 아래와 같이 바꿔서 테스트해 보세요.
$routes->get('v1/users/(:segment)', 'V1/Users::show/$1'); //에러 부분 $routes->get('v1/users', 'V1/Users::login');