Imaginations crafted into real code.

REST API

REST API 공부

REST 개념

REST(Representational State Transfer)는 웹을 위한 아키텍처 스타일로, 일련의 제약조건을 기반으로 한다.
주로 HTTP를 통해 자원을 정의하고, 자원에 대한 상태를 주고받는 방식으로 사용된다.


REST 규칙을 쓰는 이유

  1. 간단하고 보편적이다 — HTTP 프로토콜을 그대로 사용하여 이해와 구현이 쉽다.
  2. 확장 가능하고 상태를 추적할 필요가 없다 — 서버는 클라이언트의 상태를 유지하지 않는 무상태(Stateless) 구조를 가진다.
  3. 캐싱을 통해 성능을 향상시킬 수 있다 — HTTP의 캐시 메커니즘을 활용 가능하다.

REST의 핵심 개념

REST는 제약조건의 집합이다. 이를 잘 지키면 시스템이 확장성과 유연성을 갖출 수 있다.

HATEOAS (Hypermedia As The Engine Of Application State)

  • 상태 전이는 하이퍼링크를 통해 이루어져야 한다.
  • 서버 응답에는 해당 요청 이후 클라이언트가 취할 수 있는 다음 행동(링크)을 포함할 수 있다.

예시:

{
  "user": {
    "id": 1,
    "name": "Alice",
    "links": [
      { "rel": "update", "href": "/users/1", "method": "PUT" },
      { "rel": "delete", "href": "/users/1", "method": "DELETE" }
    ]
  }
}

REST의 유용성

  • 독립적 진화 : 서버와 클라이언트가 서로의 구현에 의존하지 않고 독립적으로 발전 가능
  • 유연성 : 서버 기능이 변경되어도, API 규약을 지키면 클라이언트를 수정할 필요가 없다