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 |