안녕하세요. 팀드모네입니다.
REST의 제약조건인 HATEOS에 대해서 짧고 간결하게 설명하겠습니다.
하단에 기술된 내용은 2000년에 발표된 로이필딩의 REST 논문을 참고하였습니다.
👨💻 HATEOAS란?
- 요약 : 링크를 통한 어플리케이션의 상태 전이(轉移)를 알려라!
어플리케이션의 상태 전이라는 것은 어감이 좀 어렵다. 대충 화면의 전환이라고 생각하면 좋을 것 같다.
HATEOAS는 Hypermedia As The Engine of Application State의 약자입니다. 페이지를 이동할 때, 해당 페이지에 있던 링크(하이퍼링크)를 따라서 이동해야한다는 제약조건입니다.
예를들어, 게시글의 상세보기를 하는 기능이 있다고 가정하겠습니다.
GET https://ogx4.com/board2/post/5
이 페이지에 접속한 사용자가 다음으로 할 수 있는 행동들입니다.
-> 게시물 리스트로 이동하기
-> 게시물 수정하기
-> 마이페이지로 이동하기
아무튼 HATEOAS는 어플리케이션의 상태 전이를 Hypermedia(링크)로 응답 본문에 넣으라는 의미이다.
👨💻 JSON을 이용한 HATEOAS 달성 예제
{
"data": {
"id": 1,
"name": "게시글 상세보기",
},
"_links": {
"self": {
"href": "https://ogx4.com/board2/post/5" // 현재 주소
},
"next": {
"href": "https://ogx4.com/board2/post/6" // 다음 주소
},
"prev": {
"href": "https://ogx4.com/board2/post/4" // 이전 주소
}
}
👨💻 마지막으로 REST FULL 한 줄 요약
REST의 제약조건을 모두 지키는 소프트웨어입니다. 즉, 제약조건을 단 하나라도 지키지 못했다면 결코 REST가 아닌 것입니다. REST에는 십중팔구가 없습니다.