철학 : HTTP 헤더에 이미 필요한 기능들이 다 포함되어있으니까, HTTP 헤더를 최대한 사용하자.
기존에는 표준으로 정해진 웹 통신 규약이 없었다. 이를 표준화 시키기위한 시도가 바로 REST API.
REST API 는 엄격한 규약이 아니고, 개발 방법론이자 개발 철학이다.
규칙들
1. Stateless, 인증에 있어서 세션과 쿠기를 쓰지 않는다. 대신에 토큰을 사용한다.
2. Cacheable, 원래의 http처럼 캐쉬를 쓸 수 있다.
3. Client-Server, 클라이언트 서버 모델
4. Layered System, 분산 서버를 사용. 세션을 쓰면 이부분을 구현하기가 힘듬(ex)페이스북 서드파티 로그인 같은것을 구현해내기 어려움) 그래서 토큰이 중요하다.
5. Code on Demand(선택적), 다양한 디바이스 지원 가능
6. Uniform Interface, 정형화된 통신 요청 형식이 존재한다.
요청은 정해진 형식으로 해야하고, 응답은 JSON, xml 등의 포멧으로 리턴한다.
<다음과 같이 DB연산할때 오른쪽에 해당하는 HTTP프로토콜을 사용함>
또한 메서드의 타입만봐도 뭘하는건지 알 수 있게 네이밍이 되어있음
Create = POST
Read(Select) = GET
Update = PUT
Delete = DELETE
- URL 철학
기존의 GET 방식 : /api?type=user&id=123
REST API의 방식 : /users/123
- Response 방식
HTTP 에서 사용하던 기존의 응답 codes를 이용해서 처리
200 OK
404 NOT FOUND 등
- TOKEN
인증에대해서 쿠키나 세션을 쓰지 않고 HTTP TOKEN 을 사용해야함. POST에서의 헤더 부분에 정의된 HTTP Authorization 이라는 영역을 이용.
방식은 세션과 비슷하네, 서버에 데이터를 저장하지 않고 로컬에 저장함.
'Development > Free Topic' 카테고리의 다른 글
Visual Studio (0) | 2014.11.24 |
---|---|
안드로이드 Thread 사용하기 (0) | 2014.10.05 |
안드로이드 여러가지 팁 (0) | 2014.06.24 |
Java, 클래스간 변수 공유 (0) | 2014.06.19 |
안드로이드 DB, SQLite (0) | 2014.06.19 |
댓글