자유게시판

제목 ci 3.0.3의 route를 이용하여 api 서버를 만들고 있습니다.
글쓴이 변종원(웅파) 작성시각 2015/12/22 16:02:52
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 15771   RSS

전에는 codeigniter용 restful library를 이용하여 api를 구현했는데

3.0부터 route를 이용한 방식이 가능하다고 하여 매뉴얼 보고 간단하게 구현중입니다.

 

우선 필요기능부터 정리하면

 

1. api는 버전관리를 한다. v1, v2

2. CRUD 처리

3. 변수에 대한 전처리와 원하는 포맷에 대한 후처리를 자동으로 처리한다. (개발자는 비지니스 로직만 집중)

 

주소는 http://domain.com/api/컨트롤러/v1/formap/json 이며

POST, GET, DELETE, PUT method를 사용하여 하나의 주소로 전송을 하면 route가 알아서 해당 메소드로 연결해주는 방식으로 작업했습니다.

 

예: 

http://domain.com/api/test/v1/formap/json 주소를 delete 방식으로 호출하면

test.php 컨트롤러의 delete() 메소드로 연결되는 방식입니다.

 

전처리는 hook으로 모든 메소드에 대해 변수 처리(get방식은 쿼리스트링에서, 나머지는 post)를 하여 xss_clean적용후 특정 변수에 

넣는 것까지 처리 합니다.

이후 컨트롤러에서 그 변수에 담긴 데이터를 가지고 작업을 하며

후처리는 컨트롤러에서 작업후 특정 변수에 결과를 할당하면 주소의 format을 기준으로 json이나 xml로 화면에 출력하는 역할을 합니다.

 

우선은 crud 4가지 액션에 대한 처리를 하고 하나의 컨트롤러안에 기본 crud 이외에 다른 것을 담을지는 좀더 고민을 하고 적용할 생각입니다.

 

완성후에 소스는 공개할 생각입니다. (이미 github에 올라가 있긴 하지만서도... ㅎㅎ)

 다음글 [튜토리얼] 5분안에 iOS Messaging App ... (3)
 이전글 진로 질문있습니다... (3)

댓글

한대승(불의회상) / 2015/12/22 16:24:52 / 추천 0

3.0 router 에 메소드를 이용하여 범용적으로 사용 가능한 Restful 서버 작성이 가능하리라 짐작하고는 있었는데 웅파님이 먼저 시작 하셨군요.

공개될 소스 기대가 됩니다.

테러보이 / 2016/01/05 08:43:18 / 추천 0

많은분들이 라우터 때문에 드장고 또는 슬림으로 넘어가던데...

희소식이군요!

변종원(웅파) / 2016/01/05 10:57:02 / 추천 0

테러보이/ 3점대 ci와 php7으로 restful api 작업하면 기존 환경보다 최소 2/3의 메모리 이득이 생깁니다.

테러보이 / 2016/01/05 14:15:18 / 추천 0

@웅파

사용해보고 싶네요 ㅠ.ㅠ