Restful API
- Respresentational State Transfer
- 자원의 이름을 구분하여 자원의 상태를 주고받음
- HTTP URI를 통해 자원 명시, HTTP Method(POST, GET, PUT, DELETE)를 사용하여 CRUD Operation 적용
- REST의 3요소
- 자원 : HTTP URI
- 자원에 대한 행위 : HTTP Method
- 자원에 대한 행위의 내용 : HTTP Message Pay Load
- Rest의 특징
- server-client 구조
자원이 있는 쪽 : server
자원을 요청하는 쪽 : client
client는 사용자 인증이나 context(세션, 로그인 정보) 등을 직접 관리, 책임 역할을 구분하여 상호 의존성을 줄임
- Layerd System(계층화) : 서버는 다중 계층으로 구성될 수 있음
(router, controller, service, dao)
- 장점
- HTTP 프로토콜을 준수하기 때문에 HTTP 프로토콜을 따르는 모든 곳에서 사용 가능
- HTTP 프로토콜 인프라를 사용하기 때문에 REST API 사용을 위한 별도의 인프라 구축이 필요 없음
- REST API메시지가 의도하는 바를 명확하게 나타내므로 의도를 정확히 파악할 수 있으며 여러가지 서비스 디자인에서 발생할 수 있는 문제를 최소화 함
- 단점
- 사용 가능한 Method가 4가지 밖에 없다(형태가 제한적)
- 구형 브라우저에서 호환이 되지 않아 지원되지 않는 동작이 있다