REST API

Lee·2022년 2월 8일
0

REST

REST는 무엇인가

Representational State Transfer의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 것을 의미한다.

REST의 구성요소

  1. Resource : HTTP URI
    • 모든 자원에 고유한 ID가 존재하고 이것은 서버에 존재한다.
    • 자원을 구별하는 ID는 HTTP URI이다.
    • client는 URI를 이용해 자원을 저장하고 자원의 상태에 대한 조작을 server에 요청한다.
  2. Verb : HTTP Method
    • HTTP 프로토콜은 CRUD와 같은 여러 Method를 제공한다.
  3. Representations : HTTP Message Payload
    • client가 자원의 상태에 대한 조작을 요청하면 server는 적절한 응답을 보낸다.
    • REST에서 하나의 자원은 JSON, XML, TEXT 등 여러 형태의 representation으로 나타낼 수 있다.

REST의 특징

  1. Server - Client
    • 자원을 가진 쪽이 server, 자원을 요청하는 쪽을 client가라 한다.
  2. Stateless
    • HTTP 프로토콜이 stateless이므로 REST도 무상태성을 갖는다.
    • client의 정보를 server에 저장하지 않고 요청에 대해서만 처리한다.
    • 서버에 일관성을 부여하고 부담이 줄어든다.
  3. Cacheable
    • HTTP가 가진 캐싱기능을 사용할 수 있다.
    • 전체 응답시간, 성능, 서버의 자원 이용률을 향상시킬 수 있다.
  4. Layered System
    • client는 REST API server만 호출하나 REST server는 다중 계층으로 구성될 수 있다.
  5. Code-On-Demand(Optional)
    • server로 부터 스크립트를 받아서 client에서 실행한다.
  6. Uniform Interface
    • HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용가능하다.
    • 특정 언어나 기술에 종속되지 않는다.

REST API

REST API 설계 기본 규칙

  1. URI는 정보의 자원을 표현해야 한다.
    • resource는 동사보다 명사를 사용하고 대문자보다는 소문자를 사용한다.
    • resource의 도큐먼트 이름으로는 단수 명사를 사용한다.
    • resource의 컬렉션 이름으로는 복수 명사를 사용한다.
    • resource의 스토어 이름으로는 복수 명사를 사용해야 한다.
  2. 자원에 대한 행위는 HTTP Method로 표현한다.
    • URI에 HTTP Method가 들어가면 안된다.
    • URI의 행위에 대한 동사 표현이 들어가면 안된다.
    • 경로 부분 중 변하는 부분은 유일한 값으로 대체한다.

REST API 설계 규칙

  1. 슬래시 구분자는 계층 관계를 나타내는데 사용한다.
  2. URI 마지막 문자로 슬래시를 포함하지 않는다.
  3. 하이픈은 URI 가독성을 높이는데 사용
  4. 밑줄은 URI에 사용하지 않는다.
  5. URI 경로에는 소문자를 사용하도록 한다.
  6. 파일 확장자는 URI에 포함시키지 않는다.
  7. 리소스 간에 연관 관계가 있는 경우
    /리소스명/리소스ID/관계가 있는 다른 리소스명
profile
발전하고 싶은 백엔드 개발자

0개의 댓글