REST(REpresentational State Transfer)
분산 하이퍼 미디어 시스템을 위한 아키텍쳐 스타일이며 크게 자원, 행위, 표현으로 구분된다.
- 자원(Resource): URI
- 행위(Verb): HTTP METHOD
- 표현(Representations)
설계의 4대 원칙
- 모든 리소스는 URI로 식별한다.
ex) /user/1 - id가 1인 유저를 나타냄
- 모든 리소스는 다중 표현을 가질 수 있다. (JSON, XML, etc)
- 모든 리소스는 HTTP 메소드로 접근/변경/생성/삭제 가능하다. (GET, POST, PUT, etc)
- 서버는 상태 정보를 갖지 않는다.
부가 설명
1.URI와 URL의 차이점
URI : 위치와 자원을 식별할 수 있는 정보
URL : 자료의 위치 정보만 나타냄
URL < URI
2. 자원을 표시할 때는 명사만을 사용 해야함
/user/1 O
/user/update/1 X
성숙도
Leonard Richardson이 고안한 모델로 0~3단계가 존재한다. ( 2단계 이상 부터 RESTful 하다고 함 )
- Level 0 : Remote Procedure Invocation
SOAP나 XML-RPC로 XML 메시지를 전송하여 POST 메소드만 사용
- Level 1 : REST Resource
POST 메소드를 사용하여 메소드와 인자를 사용하는 대신 REST URI를 사용
- Level 2 : More HTTP verbs
POST와 더불어 GET, DELETE 등 다른 메소드도 사용
- Level 3 : HATEOAS
클라이언트 요청에 따른 응답에 하이퍼미디어 컨트롤을 포함하고 있어서 클라이언트가 다음에 어떤 행동을 할지 안내함
ex) 클라이언트가 상품 데이터를 요청할 때 응답으로 상품을 구매 할 수 있는 링크도 같이 전송