CI 묻고 답하기

제목 Restful 질문 드립니다.
글쓴이 개떡 작성시각 2013/08/02 18:35:39
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 17334   RSS
 안녕하세요!!

개발중인 프로젝트는 
모두 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 
이렇게 처리를 해주면 될까요 
그리고 컨트롤러 단에서 어떻게 처리를 해야할지 도통 감이 오지 않습니다.

 다음글 update_batch로 필드를 + 업데이트하기. (3)
 이전글 헬퍼에 선언한 변수 사용법 문의 (3)

댓글

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

어차피 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은 다음 기회에....