자원의 이름(HTTP URI)을 통해 자원을 구분하여 해당 자원의 상태를 주고 받는 기술

- 자원의 이름 : 고유한 ID인 HTTP URI를 사용

- 상태 전송 : HTTP Method를 통해 전송

 

자원의 표현 : JSON or XML 형식

 

HTTP Method

 1. GET : 조회(Read)

 2. POST : 생성(Create) 

 3. PUT : 수정(Update) - 전체수정

    PATCH :수정(Update) - 일부수정

 4. DELETE : 삭제(Delete)

CRUD HTTP Method URI
resource 리스트 표시 GET /resources
resource 하나의 세부내용 표시 GET /resources/23
resource 생성 POST /resources
resource 수정 PUT /resources/23
resource 삭제 DELETE /resources/23

 

 

 

● REST 특징 -> 웹 표준 HTTP 프로토콜을 그대로 사용하므로 기존의 인프라를 그대로 활용가능

 1. Server-Client 구조

   - 자원을 요청하는 쪽 : Client / 자원을 갖고 있는 쪽 : Server

 2. Stateless (무상태)

    - HTTP 프로토콜과 같이 무상태성임

    - Client의 context를 Server에 저장하지 않는다.

    - Server는 각 요청을 별개의 것으로 인식한다.

 3. Cacheable (캐시 처리가능)

    -  HTTP 프로토콜의 캐싱 기능 사용

 4. Layered System (계층화)

    - Client는 REST API Server만 호출함

    - REST Server는 다중 게층으로 구성 가능

 5. Code-On-Demand

    - Server로부터 스크립트를 받아 Client에서 실행

 6. Uniform Interface (인터페이스 일관성)

    - HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용 가능

 

 

REST API

- 도큐먼트 : 객체 인스턴스나 데이터 (단수명사)

- 컬렉션 : 서버에서 관리하는 디렉토리 (복수명사)

- 스토어 : 클라이언트에서 관리하는 디렉토리 (복수명사)

 

● 설계 규칙

 1. URI는 명사, 소문자 사용 -> 동사사용 금지

 2. URI에 HTTP Method가 포함되서는 안됨

 3. URI에 _(언더스코어) 사용 금지, -(하이폰)은 가독성을 위해 사용 가능

 4. 확장자 포함금지

 5. URI는 복수명사/ID 가 표준   ex) products/1 

 6. URI 마지막에 /(슬래시)로 끝내지 않음

+ Recent posts