질문 Q #10702
Restful 질문 드립니다.
개떡 2013-08-02 18:35:39
 안녕하세요!!

개발중인 프로젝트는 
모두 ajax를 통해 데이터를 받아오는 방식이었는데요.

이를 조금 더 발전시켜보기 위해 restful로 만들고 싶어졌습니다.

다행스럽게도 CI 라이브러리 중에 REST_Controller 라는게 있어 
테스트 중입니다만 난관에 봉착하게 되었습니다.

http://net.tutsplus.com/tutorials/php/working-with-restful-services-in-codeigniter-2/ 
위 사이트를 참고 하였습니다.

만약에 group 특정 그룹 하나의 정보를 얻어오고자 한다면 

URL/api/group/id/9 를 요청하면 되겠지요.

그런데 9번 그룹에 group에 속해있는  member 목록을 얻어오고자 한다면 어떻게 해야할까요.

URL/api/group/id/9/member 
이렇게 처리를 해주면 될까요 
그리고 컨트롤러 단에서 어떻게 처리를 해야할지 도통 감이 오지 않습니다.

답변 4
#1 변종원(웅파) 2013-08-02 18:54:16
주소형태가 고정된거 같은데 group_member/id/1 형태로 만드시면 될거 같네요.
#2 개떡 2013-08-03 15:41:41
웅파님 답변 감사합니다 _ 로 처리를 하자니 뽀대가 안나고 너무 1차원 스럽다고 해야할까요 혹시 주소형태를 고정하지 않는 방법이 있는것인가요?
하이라키?를 url상에서도 일치시키고 싶습니다!
#3 변종원(웅파) 2013-08-03 23:45:34
그럼 따로 만드셔야죠. 뜯어고치거나요. restFul이라는게 mvc에서 v 대신에 xml형식이나 json 또는 text 형태등 원하는 형태로 화면 출력해주며뉴되는겁니다. 그냥 웹 만드는 것처럼 컨트롤러 메소드 등 주소쳬계정하고 리퀘스트에 대해 모델에서ㄷ데이터 가져와서 원하는 형태로 화면에 출력하면 끝입니다. 그냥 하시던대로 해서 만드세요
#4 개떡 2013-08-04 16:24:22
 오 웅파님 답변 감사합니다.

어차피 full restful을 못쓸바(?)에 그냥 주소체계만 그럴사하게 바꾸면 되는거였군요

$route['group_getGroupMemberList/(:num)'] = "evctr/group_getGroupMemberList/$1";
group_getGroupMemberList를 컨트롤러에서 explod 후 group 클래스의 getGroupMemberList()를 호출하는 방식이었는데

$route['group/member/(:num)'] = "evctr/group_getGroupMemberList/$1";
로 바꾸고 getGroupMemberList()에서 
$groupId = $this->CI->uri->segment(3, 0); 세그맨트 숫자만 바꿔주면 노가다가 최소화 될 수 있는 거였네요

진정한 의미의 restful은 다음 기회에....