REST

  • REST란 ‘Representational State Transfer’의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 의미한다. 즉, REST란 자원(resource)의 표현(representation)에 의한 상태 전달이다.
    HTTP에서의 REST는 HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다.

REST API

API(Application Programming Interface)

  • 데이터와 해당 데이터를 사용할 수 있는 기능의 명세

REST API

  • REST 기반으로 API서비스를 구현한 것이다. REST API를 통해 처음 사용하는 사용자들이 쉽고 명확하게 알아볼 수 있으며 사용이 용이하다.

REST API 6 constraints

  1. Uniform Interface :
  2. Stateless : Server는 각각의 요청을 별개의 것으로 인식하고 처리해야 하며, 이전의 요청이 다음 요청의 처리와 연관이 되어서는 안된다.
  3. Cacheable : 대량의 요청을 효율적으로 처리하기 위해 캐시를 사용할 수 있다.
  4. Client-Server : 자원을 가지고 있는 쪽이 Server이고, 자원을 요청하는 쪽이 Client가 된다.
  5. Layered System : Client는 REST API Server만 호출한다. REST Server는 다중 계층으로 구성될 수 있다. API Server는 순수 비즈니스 로직을 수행하고 그 앞단에 보안, 로드밸런싱, 암호화, 사용자 인증 등을 추가하여 구조상의 유연성을 줄 수 있다. 또한 로드밸런싱, 공유 캐시 등을 통해 확장성과 보안성을 향상시킬 수 있다.
  6. Code on Demand

REST API DESIGN GUIDE

  1. 자원당 최대 2depth의 URL을 만들어라. URL을 간결하게 만들어야 이해하기 편하다.
    • ex) /orders
    • ex) /orders/123
  2. 복수형을 사용해라.
    • ex) /orders, /items
  3. 리소스 이름과 ID를 번갈아 가면서 사용해라.
    • ex) /orders/{ordersId}/items/{itemsId}
    • 좋지않은예) /getOrders, /setOrders