1. Rest

2. CMS(2008)

3. WEB

4. REST가 웹의 독립적 진화에 도움을 주었는가

5. 그렇다면 REST API는?

6. REST API를 구현하고 REST API라고 부른다면?

7. REST의 최종정리

1. Rest

1-1) Web(1991)

Q : 어떻게 인터넷에서 정보를 공유할 것인가?

1-2) HTTP/1.0(1994-1996)

Q : 어떻게하면 Web을 망가뜨리지 않고 HTTP를 한 단계 발전시킬 수 있을까?

1-3) API(Click)

1-3)-1. XML-RPC(1998) by Microsoft → SOAP(나중에 이 이름으로 바뀜)

→ 프로토콜의 일종으로서, 인코딩 형식에서는 XML을 채택.

→ 전송 방식에서는 HTTP 프로토콜을 사용하고 있다.

→ XML-RPC는 매우 단순한 규약으로서, 작은 데이터 형식이나 명령을 정의하는 정도로만 사용.

1-3)-2. Salesforce API(2000.2)

→ 인터넷에서 거의 최초로 공개된 API임.

1-4)-3. Flickr API(2004.8)

→ SOAP과 REST라는 형태 두 가지로 API를 만들어 냈음.

Untitled

Untitled

1-5) Rest vs SOAP

Untitled

→ 2006년, AWS가 자사 API의 사용량의 85%가 Rest임을 밝힘.

→ 2010년, Salesforec.com, Rest API를 지원하게 됨.

2. CMS(2008)

2-1) CMS

CMS(저작물 관리 시스템)를 위한 표준. EMC, IBM, Microsoft 등이 함께 작업

REST 바인딩 지원(데이터는 SOAP 형식이 아닌 텍스트 기반 형식으로 웹에서 전송 됨.)

2-2) Microsoft REST API Guidelines(2016)

URI는 https://{serviceRoot}/{collection}/{id} 형식이어야 함.

GET, PUT, DELETE, POST, HEAD, PATCH, OPTIONS를 지원해야 함.

API 버저닝은 Major.minor로 하고 uri에 버전 정보를 포함시킴.

→ 사람들이 보기에 합리적이라고 생각했음.

⇒ 하지만 REST를 만든 로이 필 딩이 말하는 건

⇒ "REST API를 위한 최고의 버저닝 전략은 버저닝을 안 하는 것."

2-3) 뭐가 문제인 걸까?

2-3)-1. REST API

REST 아키텍처 스타일을 따르는 API

2-3)-2. REST

분산 하이퍼미디어 시스템(ex : 웹)을 위한 아키텍처 스타일

2-3)-3. 아키택처 스타일

제약 조건의 집합

→ 모든 제약 조건을 지켜야 REST를 따른다라고 할 수 있음.

2-4) REST를 구성하는 스타일

- Uniform Interface(모든 제약 조건 중에 이 부분을 잘 만족시키지 못함)

→ 자바스크립트를 의미하는 거임.

→ REST는 아키텍처 스타일이면서 동시에 하이브리드 아키텍처 스타일이라고 말함.

⇒ 아키텍처 스타일인데, 동시에 아키텍처 스타일의 집합이기 때문.

2-5) Uniform Interface의 제약 조건(모든 제약 조건 중에 이 부분을 잘 만족시키지 못함)

→ Resource가 URI로 식별되면 된다.

→ Representation 전송을 통해 Resource를 조작해야 된다.

→ Resource를 저장, 수정, 삭제할 때 메시지에 담아 전송한다는 의미

→ 모든 REST API 중에 지키지 못하는 부분임.

→ Self-Descriptive라는 의미는 "메시지는 스스로를 설명해야 한다."

→ 모든 REST API 중에 지키지 못하는 부분임.

→ 애플리케이션의 상태는 Hyperlink를 이용해 전이되어야 한다.

2-6) Uniform Interface의 사용이유

2-6)-1. 독립적 진화

→ 서버와 클라이언트가 각각 독립적으로 진화함.

→ 서버의 기능이 변경되어도 클라이언트를 업데이트할 필요가 없음.

→ REST를 만들게 된 계기 : 어떻게하면 Web을 망가뜨리지 않고

                                  HTTP를 한 단계 발전시킬 수 있을까?

⇒ 독립적인 진화를 하기 위해서는 Uniform Interface가 만족해야 됨.

3. WEB

3-1) WEB

웹 페이지를 변경했다고 웹 브라우저를 업데이트할 필요는 없음.

웹 브라우저를 업데이트했다고 웹 페이지를 변경할 필요도 없음.

HTTP 명세가 변경되어도 웹은 잘 동작함.

HTML 명세가 변경되어도 웹은 잘 동작함.

3-2) WEB은 어떻게 가능하게 했을까?

W3C Working groups