Hateoas
Post

Hateoas

REST API

  • REpresentational State Transfer
  • 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미
  • URI(Uniform Resource Identifier)을통해 자원을 명시하고 HTTP Method(POST, GET, PUT, DELETE)를 통해 자원에 대한 CRUD Operation을 적용하는 것

Hateoas

  • Hypermedia As The Engine Of Application State
  • 애플리케이션의 상태를 관리하기 위해 하이퍼미디어(링크)를 사용한다는 것
  • 즉, 클라이언트와 서버가 동적인 상호작용이 가능하도록 하는 것을 의미

  • 링크를 통해서 애플리케이션 상태 전이가 가능해야 하고
  • 링크에 자기 자신에 대한 정보가 담겨야 한다. (요청에 필요한 URI를 응답에 포함시켜 반환)

  • 예시
//출처 : https://wonit.tistory.com/454
{
  "data": { // HAL JSON의 리소스 필드
    "id": 1000,
    "name": "게시글 1",
    "content": "HAL JSON을 이용한 예시 JSON"
  },
  "_links": { // HAL JSON의 링크 필드
    "self": {
      "href": "http://localhost:8080/api/article/1000" // 현재 api 주소
    },
    "profile": {
      "href": "http://localhost:8080/docs#query-article" // 해당 api의 문서
    },
    "next": {
      "href": "http://localhost:8080/api/article/1001" // article 의 다음 api 주소
    },
    "prev": {
      "href": "http://localhost:8080/api/article/999" // article의 이전 api 주소
    }
  }
}

Reference