1. REST 서비스

REST

: Representational State Transfer

: 로이 필딩, HTTP 프로토콜 주요 저자

: 사전 정의 : 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍쳐

: 네트워크를 이용해서 자원에 접근하고 자원을 다룰수 있는 아키텍쳐

: 90년대 웹 도입과 성장 시대에 웹 기반 소프트웨어의 이상적인 아키텍쳐 제시

REST 아키텍쳐의 제한 조건

- 클라이언트/서버 : 요청과 응답 기반

- 상태 없음 : 클라이언트 상태와 관계없이 요청으로만 응답

- 캐시 : 클라이언트는 서버의 응답을 캐쉬, 네트워크 비용 절감

- 계층화 시스템 : 서버는 다양한 형태의 중간계층을 이용해서 확장할 수 있다.

: 클라이언트는 서버의 계층에 무관하게 통신을 할 수 있다.

- Code on Demand : 리소스를 다룰수 있는 코드 전송

- 인터페이스 일관성 : 시스템구조를 단순화시키고 작은 단위로 분리해서 독립적으로 개선하고 확장할 수 있다.

REST 인터페이스 원칙

- 자원 식별 : 개별 리소스를 식별할 수 있어야 한다.

- 메세지로 리소스 조작 : 메세지에 작성한 리소스를 다루는 정보를 이용해서 리소스를 얻어오거나 리소스를 조작한다.

- 자기 서술적 메세지 : 요청과 응답 메세지에는 메세지를 처리할 수 있는 정보를 포함한다.

- 하이퍼 미디어 : 하이퍼링크를 이용해서 유기적으로 연결된 문서로 쉽고 간단하게 정보를 접할 수 있다.

2. 서비스 설계 가이드

REST 아키텍처를 기반으로 서비스 작성하기

: HTTP 프로토콜 사용

: 인터페이스 설계

: 리소스 접근하는 인터페이스 (URL)

: 리소스를 다루기 위한 HTTP 메소드

: 요청과 응답 메세지 설계

: 요청 메세지 구조

: 응답 메세지 구조

인터페이스 설계

: 간단하고 직관적인 API

: 리소스를 다루는 행위는 HTTP 메소드 사용

: GET, POST, PUT, DELETE

: API 버전

: URL에 버전 명시할 수 있음 /v1/...

: 명사형 단어 사용 권장

: 목록 형태의 리소스를 다루는 API는 복수형 명사

: 목록에서 특정 조건으로 필터링 : 쿼리 문자열

응답메세지 (JSON)

: 프로퍼티의 이름

: 의미를 충분히 반영

: 카멜 케이스

: 예약어 사용하지 말것

: 응답 메세지 구조

: 데이터와 보조 데이터 활용

: 에러 발생시 에러 정보 제공

메시지 구조

: 데이터와 메타데이터, 에러정보, 페이지 정보

3. 영화 정보 서비스 설계

영화 정보 제공 웹 서비스

: 컨텐츠 : 영화정보

: 미디어 타입 : JSON

: HTTP 메소드 : GET, PUT, POST, DELETE

4. 영화 정보 서비스 작성

: REST 서비스 작성

: http 모듈로 만듬

: 라우팅, 요청/응답 방법 익히기



'프로그래밍 > Nodejs' 카테고리의 다른 글

Node.js와 MySQL  (0) 2017.04.27
Express  (0) 2017.04.24
모바일서버  (0) 2017.04.24
HTTP POST요청  (0) 2017.04.16
HTTP 서버  (0) 2017.04.16

+ Recent posts